summaryrefslogtreecommitdiff
path: root/Kernel
diff options
context:
space:
mode:
authorLiav A <liavalb@gmail.com>2020-03-06 03:20:51 +0200
committerAndreas Kling <kling@serenityos.org>2020-03-06 10:32:32 +0100
commitf33fb151b4911eece7df65ecb2372f211ac53b7e (patch)
treee06702374e92b2dd5b17d4cfe4f41457ea4c3d74 /Kernel
parent30fc78bfaf084835530241e0b1c8e3cc2a45ab23 (diff)
downloadserenity-f33fb151b4911eece7df65ecb2372f211ac53b7e.zip
CPU: Allow to use IRQs in range of 50 to 178
Diffstat (limited to 'Kernel')
-rw-r--r--Kernel/Arch/i386/CPU.cpp4
1 files changed, 3 insertions, 1 deletions
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);