BarryServer : Git

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

// Related

Nucleus

Barry Basic paging bc5e11e (3 years, 3 months ago)
diff --git a/kernel/idt.c b/kernel/idt.c
index 85f64c6..52076a8 100644
--- a/kernel/idt.c
+++ b/kernel/idt.c
@@ -367,3 +367,19 @@ cpu_load_idt(void)
 	};
 	asm volatile("lidt %0" :: "m" (ptr));
 }
+
+/* Register an exception handler */
+void
+register_exception(int num, exc_handler_t addr)
+{
+	if (num >= 0 && num < 32)
+		exceptions[num] = addr;
+}
+
+/* Register an interrupt handler */
+void
+register_interrupt(int num, int_handler_t addr)
+{
+	if (num >= 0 && num < 224)
+		interrupts[num] = addr;
+}
diff --git a/kernel/main.c b/kernel/main.c
index a343089..4536e45 100644
--- a/kernel/main.c
+++ b/kernel/main.c
@@ -57,5 +57,8 @@ kmain(uint32_t esp, struct MultibootInfo *mbinfo)
 	cpu_load();
 	init_acpi(ebda);
 
+	/* Initialise paging */
+	init_paging();
+
 	panic("End of kernel!");
 }