|
@@ -37,12 +37,10 @@
|
|
|
|
|
|
#include <driver/interrupt/apic/apic_timer.h>
|
|
|
|
|
|
-unsigned int *FR_address = (unsigned int *)0xb8000;
|
|
|
ul bsp_idt_size, bsp_gdt_size;
|
|
|
|
|
|
-
|
|
|
-void test_slab();
|
|
|
-
|
|
|
+#pragma GCC push_options
|
|
|
+#pragma GCC optimize("O0")
|
|
|
struct gdtr gdtp;
|
|
|
struct idtr idtp;
|
|
|
void reload_gdt()
|
|
@@ -148,6 +146,7 @@ void system_initialize()
|
|
|
|
|
|
|
|
|
pci_init();
|
|
|
+ io_mfence();
|
|
|
ahci_init();
|
|
|
|
|
|
|
|
@@ -174,6 +173,9 @@ void system_initialize()
|
|
|
apic_timer_init();
|
|
|
io_mfence();
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -202,7 +204,7 @@ void Start_Kernel(void)
|
|
|
io_mfence();
|
|
|
|
|
|
while (1)
|
|
|
- hlt();
|
|
|
+ pause();
|
|
|
}
|
|
|
|
|
|
void ignore_int()
|
|
@@ -211,3 +213,4 @@ void ignore_int()
|
|
|
while (1)
|
|
|
;
|
|
|
}
|
|
|
+#pragma GCC pop_options
|