Reactos

[HALX86/APIC] Change IRQL for x86 profile interrupt to HIGH_LEVEL

While PROFILE_LEVEL is defined as 27 on x86, this does not match the vector for the profiling interrupt, which is 0xFD (see https://community.osr.com/t/odd-ioapic-output/45216), implying IRQL 31.
Fixes boot with x86 APIC hal (CORE-20093)

+3 -1
+2
hal/halx86/apic/apicp.h
··· 32 32 #define IrqlToSoftVector(Irql) ((Irql << 4)|0xf) 33 33 #define TprToIrql(Tpr) ((KIRQL)(Tpr >> 4)) 34 34 #define CLOCK2_LEVEL CLOCK_LEVEL 35 + #define APIC_PROFILE_LEVEL PROFILE_LEVEL 35 36 #else 36 37 #define LOCAL_APIC_BASE 0xFFFE0000 37 38 #define IOAPIC_BASE 0xFFFE1000 ··· 54 55 #define IrqlToTpr(Irql) (HalpIRQLtoTPR[Irql]) 55 56 #define IrqlToSoftVector(Irql) IrqlToTpr(Irql) 56 57 #define TprToIrql(Tpr) (HalVectorToIRQL[Tpr >> 4]) 58 + #define APIC_PROFILE_LEVEL HIGH_LEVEL 57 59 #endif 58 60 59 61 #define APIC_MAX_IRQ 24
+1 -1
hal/halx86/apic/halinit.c
··· 63 63 HalpEnableInterruptHandler(IDT_DEVICE, 64 64 0, 65 65 APIC_PROFILE_VECTOR, 66 - PROFILE_LEVEL, 66 + APIC_PROFILE_LEVEL, 67 67 HalpProfileInterrupt, 68 68 Latched); 69 69 }