Register interrupt handlers once the APIC initialization is done

This commit is contained in:
2023-11-28 14:20:23 +01:00
parent c4ccf52782
commit d17b06a180
6 changed files with 90 additions and 3 deletions

View File

@@ -176,7 +176,7 @@ HlpInitializeApic()
HlWriteApicRegister(APIC_LDR, (1UL << CpuNumber) << 24);
}
/* Set the spurious interrupt vector and register interrupt handlers */
/* Set the spurious interrupt vector */
SpuriousRegister.Long = HlReadApicRegister(APIC_SIVR);
SpuriousRegister.Vector = APIC_VECTOR_SPURIOUS;
SpuriousRegister.SoftwareEnable = 1;
@@ -217,4 +217,8 @@ HlpInitializeApic()
/* Clear errors after enabling vectors */
HlWriteApicRegister(APIC_ESR, 0);
/* Register interrupt handlers once the APIC initialization is done */
KeSetInterruptHandler(APIC_VECTOR_SPURIOUS, HlpHandleApicSpuriousService);
KeSetInterruptHandler(PIC1_VECTOR_SPURIOUS, HlpHandlePicSpuriousService);
}