From f33fb151b4911eece7df65ecb2372f211ac53b7e Mon Sep 17 00:00:00 2001 From: Liav A Date: Fri, 6 Mar 2020 03:20:51 +0200 Subject: [PATCH] CPU: Allow to use IRQs in range of 50 to 178 --- Kernel/Arch/i386/CPU.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Kernel/Arch/i386/CPU.cpp b/Kernel/Arch/i386/CPU.cpp index c916bc4713..62624e3e53 100644 --- a/Kernel/Arch/i386/CPU.cpp +++ b/Kernel/Arch/i386/CPU.cpp @@ -625,6 +625,8 @@ void idt_init() register_interrupt_handler(0xce, interrupt_126_asm_entry); register_interrupt_handler(0xcf, interrupt_127_asm_entry); + dbg() << "Installing Unhandled Handlers"; + for (u8 i = 0; i < GENERIC_INTERRUPT_HANDLERS_COUNT; ++i) { new UnhandledInterruptHandler(i); } @@ -643,7 +645,7 @@ void handle_interrupt(RegisterState regs) { clac(); ++g_in_irq; - ASSERT(regs.isr_number >= 0x50 && regs.isr_number <= 0x5f); + ASSERT(regs.isr_number >= IRQ_VECTOR_BASE && regs.isr_number <= (IRQ_VECTOR_BASE + GENERIC_INTERRUPT_HANDLERS_COUNT)); u8 irq = (u8)(regs.isr_number - 0x50); ASSERT(s_interrupt_handler[irq]); s_interrupt_handler[irq]->handle_interrupt(regs);