From d4b9c8763deb6d3ed6204b3c044b25adcaf20738 Mon Sep 17 00:00:00 2001 From: "Pierre-Emmanuel Gob." Date: Fri, 18 Sep 2026 12:03:06 +0200 Subject: [PATCH] Include idt_init --- kernel/core/kmain.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/core/kmain.c b/kernel/core/kmain.c index 090ae40..3152165 100644 --- a/kernel/core/kmain.c +++ b/kernel/core/kmain.c @@ -2,12 +2,13 @@ * * Called once from the stage-2 entry stub after the CPU is in 64-bit long * mode with a valid stack, zeroed BSS and identity-mapped memory. Runs at - * Ring 0 (CPL 0), interrupts disabled, no IDT yet: any fault triple-faults, - * so this function proves the whole boot chain simply by running. + * Ring 0 (CPL 0) interrupts disabled. Installs the exception IDT first + * so from then on a fault prints diagnostics instead of triple-faulting. * It never returns; on return the caller halts the CPU. */ #include "console.h" +#include "idt.h" /* A value that only comes out right if the CPU truly executes 64-bit * arithmetic: every nibble survives the shifts above 32 bits. */ @@ -18,6 +19,8 @@ void kmain(void) console_clear(); console_puts("Hello World from Nadir Kernel !\n"); console_puts("Running C code in 64-bit long mode (Ring 0).\n"); + idt_init(); + console_puts("IDT installed (vectors 0-31).\n"); console_puts("64-bit proof value: "); console_puthex64(PROOF_VALUE); console_puts("\nHalting.\n");