Cosmos/source/Cosmos.Core/GlobalSystemInfo.cs
2015-07-25 11:54:11 -04:00

22 lines
784 B
C#

namespace Cosmos.Core
{
internal static unsafe class GlobalSystemInfo
{
private static GlobalInformationTable* mGlobalInformationTable;
public static GlobalInformationTable* GlobalInformationTable
{
get
{
if (mGlobalInformationTable == null)
{
// todo: should we align this structure somehow?
var xEndOfKernel = CPU.GetEndOfKernel();
mGlobalInformationTable = (GlobalInformationTable*)xEndOfKernel;
mGlobalInformationTable->FirstDataLookupTable = (DataLookupTable*)(xEndOfKernel + sizeof(GlobalInformationTable));
}
return mGlobalInformationTable;
}
}
}
}