mirror of
https://github.com/reactos/reactos.git
synced 2025-02-28 11:25:13 +00:00
[NTOS][HAL:APIC] Call HalBegin/EndSystemInterrupt from clock handler
This commit is contained in:
parent
1f647e4479
commit
5ebd478325
5 changed files with 13 additions and 3 deletions
|
@ -743,7 +743,6 @@ HalDisableSystemInterrupt(
|
|||
IOApicWrite(IOAPIC_REDTBL + 2 * Index, ReDirReg.Long0);
|
||||
}
|
||||
|
||||
#ifndef _M_AMD64
|
||||
BOOLEAN
|
||||
NTAPI
|
||||
HalBeginSystemInterrupt(
|
||||
|
@ -826,6 +825,7 @@ HalEndSystemInterrupt(
|
|||
|
||||
/* IRQL MANAGEMENT ************************************************************/
|
||||
|
||||
#ifndef _M_AMD64
|
||||
KIRQL
|
||||
NTAPI
|
||||
KeGetCurrentIrql(VOID)
|
||||
|
|
|
@ -191,6 +191,9 @@ HalpClockInterruptHandler(IN PKTRAP_FRAME TrapFrame)
|
|||
|
||||
/* Update the system time -- on x86 the kernel will exit this trap */
|
||||
KeUpdateSystemTime(TrapFrame, LastIncrement, Irql);
|
||||
|
||||
/* End the interrupt */
|
||||
KiEndInterrupt(Irql, TrapFrame);
|
||||
}
|
||||
|
||||
VOID
|
||||
|
|
|
@ -586,7 +586,6 @@ HalInitializeBios(
|
|||
#ifdef _M_AMD64
|
||||
#define KfLowerIrql KeLowerIrql
|
||||
#define KiEnterInterruptTrap(TrapFrame) /* We do all neccessary in asm code */
|
||||
#define HalBeginSystemInterrupt(Irql, Vector, OldIrql) ((*(OldIrql) = PASSIVE_LEVEL), TRUE)
|
||||
#endif // _M_AMD64
|
||||
|
||||
extern BOOLEAN HalpNMIInProgress;
|
||||
|
|
|
@ -356,7 +356,10 @@ KiEndInterrupt(IN KIRQL Irql,
|
|||
{
|
||||
/* Make sure this is from the clock handler */
|
||||
ASSERT(TrapFrame->ErrorCode == 0xc10c4);
|
||||
//KeLowerIrql(Irql);
|
||||
|
||||
/* Disable interrupts and end the interrupt */
|
||||
_disable();
|
||||
HalEndSystemInterrupt(Irql, TrapFrame);
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
|
|
|
@ -77,7 +77,10 @@ KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame,
|
|||
|
||||
/* Increase interrupt count and end the interrupt */
|
||||
Prcb->InterruptCount++;
|
||||
|
||||
#ifdef _M_IX86 // x86 optimization
|
||||
KiEndInterrupt(Irql, TrapFrame);
|
||||
#endif
|
||||
|
||||
/* Note: non-x86 return back to the caller! */
|
||||
return;
|
||||
|
@ -131,8 +134,10 @@ KeUpdateSystemTime(IN PKTRAP_FRAME TrapFrame,
|
|||
Prcb->InterruptCount++;
|
||||
}
|
||||
|
||||
#ifdef _M_IX86 // x86 optimization
|
||||
/* Disable interrupts and end the interrupt */
|
||||
KiEndInterrupt(Irql, TrapFrame);
|
||||
#endif
|
||||
}
|
||||
|
||||
VOID
|
||||
|
|
Loading…
Reference in a new issue