예제 #1
0
        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);
            }
        }
예제 #2
0
        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);
            }
        }