BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / commit / ca4f3abc7b46ecf67b6a72e75989dc6eccead09a / kernel / acpi

// Related

Nucleus

Barry Multi-core scheduling ca4f3ab (3 years, 3 months ago)
diff --git a/kernel/acpi/apic.c b/kernel/acpi/apic.c
index 4d969f5..8bdfbf8 100644
--- a/kernel/acpi/apic.c
+++ b/kernel/acpi/apic.c
@@ -10,6 +10,7 @@
 #include <string.h>
 #include <nucleus/memory.h>
 #include <nucleus/cpu.h>
+#include <nucleus/task.h>
 #include <io.h>
 #include "acpi.h"
 
@@ -219,13 +220,12 @@ init_apic(struct SDTHeader *header)
 _Noreturn void
 ap_startup(void)
 {
+	/* Set up CPU environment */
 	enable_apic();
 	cpu_load();
-	apic_start_timer();
 	cpu_load_paging();
+	apic_start_timer();
 
-	/* Do nothing */
-	asm volatile("cli");
-	while (1)
-		asm volatile("hlt");
+	/* Start running tasks */
+	schedule();
 }