Use the correct structure in SetInterruptGate. Modified: trunk/reactos/hal/halx86/mp/apic.c _____
Modified: trunk/reactos/hal/halx86/mp/apic.c --- trunk/reactos/hal/halx86/mp/apic.c 2005-06-29 18:26:30 UTC (rev 16326) +++ trunk/reactos/hal/halx86/mp/apic.c 2005-06-29 18:33:39 UTC (rev 16327) @@ -905,12 +905,13 @@
VOID SetInterruptGate(ULONG index, ULONG address) { - KDESCRIPTOR *idt; + KIDTENTRY *idt;
- idt = (KDESCRIPTOR*)((ULONG)KeGetCurrentKPCR()->IDT + index * sizeof(KDESCRIPTOR)); - idt->Pad = address & 0xffff; - idt->Limit = KERNEL_CS; - idt->Base = 0x8e00 + (address & 0xffff0000); + idt = (KIDTENTRY*)((ULONG)KeGetCurrentKPCR()->IDT + index * sizeof(KIDTENTRY)); + idt->Offset = address & 0xffff; + idt->Selector = KERNEL_CS; + idt->Access = 0x8e00; + idt->ExtendedOffset = address >> 16; }
VOID HaliInitBSP(VOID)