From 55d2a64f544c1f209be16758539d4cad92444fe1 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Sat, 9 Mar 2024 23:49:31 +0200 Subject: [PATCH] Kernel: Map interrupt handlers for all processors This doesn't mean that processors will actually handle the irqs --- kernel/arch/x86_64/IDT.cpp | 8 ++------ kernel/include/kernel/IDT.h | 2 +- kernel/kernel/Processor.cpp | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/kernel/arch/x86_64/IDT.cpp b/kernel/arch/x86_64/IDT.cpp index 5b7187cd..c11ff2b8 100644 --- a/kernel/arch/x86_64/IDT.cpp +++ b/kernel/arch/x86_64/IDT.cpp @@ -356,7 +356,7 @@ done: extern "C" void syscall_asm(); - IDT* IDT::create(bool is_bsb) + IDT* IDT::create() { auto* idt = new IDT(); ASSERT(idt); @@ -367,12 +367,8 @@ done: ISR_LIST_X #undef X - // FIXME: distribute IRQs more evenly? #define X(num) idt->register_interrupt_handler(IRQ_VECTOR_BASE + num, irq ## num); - if (is_bsb) - { - IRQ_LIST_X - } + IRQ_LIST_X #undef X idt->register_syscall_handler(0x80, syscall_asm); diff --git a/kernel/include/kernel/IDT.h b/kernel/include/kernel/IDT.h index fc8c096c..0a79c8a8 100644 --- a/kernel/include/kernel/IDT.h +++ b/kernel/include/kernel/IDT.h @@ -34,7 +34,7 @@ namespace Kernel BAN_NON_MOVABLE(IDT); public: - static IDT* create(bool is_bsb); + static IDT* create(); [[noreturn]] static void force_triple_fault(); diff --git a/kernel/kernel/Processor.cpp b/kernel/kernel/Processor.cpp index f9ef0ff7..f7805f9f 100644 --- a/kernel/kernel/Processor.cpp +++ b/kernel/kernel/Processor.cpp @@ -42,7 +42,7 @@ namespace Kernel processor.m_gdt = GDT::create(); ASSERT(processor.m_gdt); - processor.m_idt = IDT::create(id == s_bsb_id); + processor.m_idt = IDT::create(); ASSERT(processor.m_idt); return processor;