Bläddra i källkod

Kernel: Move global constructor invocation a bit earlier

Andreas Kling 5 år sedan
förälder
incheckning
e4ab908fe0
1 ändrade filer med 5 tillägg och 4 borttagningar
  1. 5 4
      Kernel/init.cpp

+ 5 - 4
Kernel/init.cpp

@@ -119,6 +119,11 @@ extern "C" [[noreturn]] void init()
     gdt_init();
     idt_init();
 
+    // Invoke all static global constructors in the kernel.
+    // Note that we want to do this as early as possible.
+    for (ctor_func_t* ctor = &start_ctors; ctor < &end_ctors; ctor++)
+        (*ctor)();
+
     setup_interrupts();
     setup_acpi();
 
@@ -134,10 +139,6 @@ extern "C" [[noreturn]] void init()
 
     setup_time_management();
 
-    // call global constructors after gtd and itd init
-    for (ctor_func_t* ctor = &start_ctors; ctor < &end_ctors; ctor++)
-        (*ctor)();
-
     new NullDevice;
     if (!get_serial_debug())
         new SerialDevice(SERIAL_COM1_ADDR, 64);