summaryrefslogtreecommitdiff
path: root/kernel/src/scheduler/ap_startup.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/scheduler/ap_startup.c')
-rw-r--r--kernel/src/scheduler/ap_startup.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/src/scheduler/ap_startup.c b/kernel/src/scheduler/ap_startup.c
index f4a2055..92fc51c 100644
--- a/kernel/src/scheduler/ap_startup.c
+++ b/kernel/src/scheduler/ap_startup.c
@@ -5,13 +5,14 @@
#include <gdt.h>
#include <paging.h>
-void ap_startup(void) {
+void ap_startup(void)
+{
load_idt(&idt_pointer);
load_gdt(&gdt_pointer);
load_pt_lvl4(page_table_lvl4);
- while (bspdone) {
- __asm__ __volatile__ ("pause;");
+ while (!bspdone) {
+ __asm__ __volatile__("pause;");
}
printf("curr_cpu_apic_id: 0x%x\n", curr_cpu_apic_id());
@@ -19,7 +20,7 @@ void ap_startup(void) {
ap_cnt++;
unlock(cnt_lock);
- for(;;) {
- __asm__ __volatile__ ("hlt;");
+ for (;;) {
+ __asm__ __volatile__("hlt;");
}
}