diff --git a/xtoskrnl/hl/x86/pic.cc b/xtoskrnl/hl/x86/pic.cc index bfe0219..4031034 100644 --- a/xtoskrnl/hl/x86/pic.cc +++ b/xtoskrnl/hl/x86/pic.cc @@ -117,32 +117,6 @@ HL::Pic::GetCpuApicId(VOID) return (ApicMode == APIC_MODE_COMPAT) ? ((ApicId & 0xFFFFFFFF) >> APIC_XAPIC_LDR_SHIFT) : ApicId; } -/** - * Allows an APIC spurious interrupts to end up. - * - * @return This routine does not return any value. - * - * @since XT 1.0 - */ -XTCDECL -VOID -HL::Pic::HandleApicSpuriousService(VOID) -{ -} - -/** - * Allows a PIC spurious interrupts to end up. - * - * @return This routine does not return any value. - * - * @since XT 1.0 - */ -XTCDECL -VOID -HL::Pic::HandlePicSpuriousService(VOID) -{ -} - /** * Initializes the APIC interrupt controller. * @@ -249,8 +223,7 @@ HL::Pic::InitializeApic(VOID) WriteApicRegister(APIC_LINT1, LvtRegister.Long); /* Register interrupt handlers */ - HL::Irq::SetInterruptHandler(APIC_VECTOR_SPURIOUS, (PVOID)HandleApicSpuriousService); - HL::Irq::SetInterruptHandler(PIC1_VECTOR_SPURIOUS, (PVOID)HandlePicSpuriousService); + HL::Irq::SetInterruptHandler(APIC_VECTOR_SPURIOUS, (PVOID)ArHandleSpuriousInterrupt); /* Clear any pre-existing errors */ WriteApicRegister(APIC_ESR, 0); @@ -332,6 +305,9 @@ HL::Pic::InitializeLegacyPic(VOID) /* Mask all interrupts on PIC2 port */ HL::IoPort::WritePort8(PIC2_DATA_PORT, 0xFF); + + /* Register interrupt handler */ + HL::Irq::SetInterruptHandler(PIC1_VECTOR_SPURIOUS, (PVOID)ArHandleSpuriousInterrupt); } /** diff --git a/xtoskrnl/includes/hl/pic.hh b/xtoskrnl/includes/hl/pic.hh index c90b098..02b8145 100644 --- a/xtoskrnl/includes/hl/pic.hh +++ b/xtoskrnl/includes/hl/pic.hh @@ -34,8 +34,6 @@ namespace HL private: STATIC XTAPI BOOLEAN CheckApicSupport(VOID); STATIC XTAPI BOOLEAN CheckX2ApicSupport(VOID); - STATIC XTCDECL VOID HandleApicSpuriousService(VOID); - STATIC XTCDECL VOID HandlePicSpuriousService(VOID); STATIC XTAPI VOID InitializeApic(VOID); STATIC XTAPI VOID InitializeLegacyPic(VOID); };