public static void Setup() { // At this stage, allocating memory does not work, so you are only allowed to use ValueTypes or static classes. IDT.SetInterruptHandler(null); Panic.Setup(); Debugger.Setup(Serial.COM1); // Initialize interrupts PIC.Setup(); IDT.Setup(); // Initializing the memory management Multiboot.Setup(); GDT.Setup(); PageFrameAllocator.Setup(); PageTable.Setup(); VirtualPageAllocator.Setup(); GC.Setup(); // At this point we can use objects Scheduler.Setup(); SmbiosManager.Setup(); ConsoleManager.Setup(); Internal.Setup(); }
public static void Setup() { // Initialize GDT before IDT, because IDT Entries requies a valid Segment Selector // This never happend before, because on fast computers GDT.Setup() was called // before a Interrupt,for example clock, got triggered. Multiboot.Setup(); GDT.Setup(); // At this stage, allocating memory does not work, so you are only allowed to use ValueTypes or static classes. IDT.SetInterruptHandler(null); Panic.Setup(); Debugger.Setup(Serial.COM1); // Initialize interrupts PIC.Setup(); IDT.Setup(); // Initializing the memory management PageFrameAllocator.Setup(); PageTable.Setup(); VirtualPageAllocator.Setup(); GC.Setup(); // At this point we can use objects Scheduler.Setup(); SmbiosManager.Setup(); ConsoleManager.Setup(); Internal.Setup(); }