From b963213a51da1ae0dc995e26445d21250c7fea44 Mon Sep 17 00:00:00 2001 From: Raghuram Subramani Date: Tue, 16 Sep 2025 15:22:07 -0400 Subject: interrupts: exception_handler should accept IRQ number --- kernel/boot/interrupts/exceptions.cc | 4 +++- kernel/boot/interrupts/isr.s | 2 ++ kernel/include/boot/interrupts.h | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/kernel/boot/interrupts/exceptions.cc b/kernel/boot/interrupts/exceptions.cc index d05bd77..964d025 100644 --- a/kernel/boot/interrupts/exceptions.cc +++ b/kernel/boot/interrupts/exceptions.cc @@ -26,8 +26,10 @@ namespace Interrupts { void -exception_handler(void) +exception_handler(int irq_number) { + printk("interrupts", "Interrupt: %d", irq_number); + ASSERT_NOT_REACHED(); while (true) __asm__ volatile("cli; hlt"); diff --git a/kernel/boot/interrupts/isr.s b/kernel/boot/interrupts/isr.s index 925bb27..9ffd94e 100644 --- a/kernel/boot/interrupts/isr.s +++ b/kernel/boot/interrupts/isr.s @@ -28,12 +28,14 @@ dd ISR_%+i %macro ISR_WITH_ERROR 1 ISR_%+%1: + push %1 call exception_handler iret %endmacro %macro ISR_NO_ERROR 1 ISR_%+%1: + push %1 call exception_handler iret %endmacro diff --git a/kernel/include/boot/interrupts.h b/kernel/include/boot/interrupts.h index 2bd4493..4df66e9 100644 --- a/kernel/include/boot/interrupts.h +++ b/kernel/include/boot/interrupts.h @@ -67,7 +67,7 @@ void disable(void); void load_idt(void); bool idt_loaded(void); -extern "C" NORETURN void exception_handler(void); +extern "C" NORETURN void exception_handler(int irq_number); } -- cgit v1.2.3