private static unsafe void EnsureInitialized() { if (mGlobalInformationTable == null) { // todo: should we align this structure somehow? var xEndOfKernel = CPU.GetEndOfKernel(); xEndOfKernel = xEndOfKernel + (1024 * 1024); // for now, skip 1 MB CPU.ZeroFill(xEndOfKernel, (uint)(sizeof(GlobalInformationTable) + TotalDataLookupTableSize) * 4); mGlobalInformationTable = (GlobalInformationTable*)xEndOfKernel; uint xFirstDataLookupLocation = (uint)(xEndOfKernel + sizeof(GlobalInformationTable)); Debugger.DoSend("Setting FirstDataLookupTable to "); Debugger.DoSendNumber(xFirstDataLookupLocation); mGlobalInformationTable->FirstDataLookupTable = (DataLookupTable*)xFirstDataLookupLocation; Debugger.DoSend("FirstDataLookupTable was set to "); Debugger.DoSendNumber((uint)mGlobalInformationTable->FirstDataLookupTable); } }
public static unsafe void EnsureInitialized() { if (mGlobalInformationTable == null) { // todo: should we align this structure somehow? var xEndOfKernel = Processor.GetEndOfKernel(); xEndOfKernel = xEndOfKernel + (1024 * 1024); // for now, skip 1 MB Processor.ZeroFill(xEndOfKernel, (uint)(sizeof(GlobalInformationTable) + TotalDataLookupTableSize) * 4); mGlobalInformationTable = (GlobalInformationTable *)xEndOfKernel; uint xFirstDataLookupLocation = (uint)(xEndOfKernel + sizeof(GlobalInformationTable)); //Debugger.DoSend("Setting FirstDataLookupTable to "); //Debugger.DoSendNumber(xFirstDataLookupLocation); mGlobalInformationTable->FirstDataLookupTable = (DataLookupTable *)xFirstDataLookupLocation; //Debugger.DoSend("FirstDataLookupTable was set to "); //Debugger.DoSendNumber((uint)mGlobalInformationTable->FirstDataLookupTable); } }