mirror of
https://github.com/reactos/reactos.git
synced 2024-08-15 08:03:55 +00:00
- Get rid of the peculiar idea that the HAL should manually hack into ntoskrnl through a hack export and hackishly call the registered device interrupt handlers. This is why computers have a PIC in the first place...
svn path=/trunk/; revision=23653
This commit is contained in:
parent
fcda0db1c6
commit
fcdd76f501
|
@ -16,10 +16,6 @@
|
|||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
/*
|
||||
* FIXME: Use EISA_CONTROL STRUCTURE INSTEAD OF HARD-CODED OFFSETS
|
||||
*/
|
||||
|
||||
UCHAR Table[8] =
|
||||
{
|
||||
0, 0,
|
||||
|
@ -27,14 +23,6 @@ UCHAR Table[8] =
|
|||
2, 2, 2, 2
|
||||
};
|
||||
|
||||
static ULONG HalpPendingInterruptCount[NR_IRQS] = {0};
|
||||
|
||||
#define DIRQL_TO_IRQ(x) (PROFILE_LEVEL - x)
|
||||
#define IRQ_TO_DIRQL(x) (PROFILE_LEVEL - x)
|
||||
|
||||
VOID STDCALL
|
||||
KiInterruptDispatch2 (ULONG Irq, KIRQL old_level);
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
extern ULONG KiI8259MaskTable[];
|
||||
|
@ -60,38 +48,6 @@ VOID HalpEndSystemInterrupt(KIRQL Irql)
|
|||
Ki386RestoreFlags(flags);
|
||||
}
|
||||
|
||||
VOID STATIC
|
||||
HalpExecuteIrqs(KIRQL NewIrql)
|
||||
{
|
||||
ULONG IrqLimit, i;
|
||||
|
||||
IrqLimit = min(PROFILE_LEVEL - NewIrql, NR_IRQS);
|
||||
|
||||
/*
|
||||
* For each irq if there have been any deferred interrupts then now
|
||||
* dispatch them.
|
||||
*/
|
||||
for (i = 0; i < IrqLimit; i++)
|
||||
{
|
||||
if (HalpPendingInterruptCount[i] > 0)
|
||||
{
|
||||
KeGetPcr()->Irql = (KIRQL)IRQ_TO_DIRQL(i);
|
||||
|
||||
while (HalpPendingInterruptCount[i] > 0)
|
||||
{
|
||||
/*
|
||||
* For each deferred interrupt execute all the handlers at DIRQL.
|
||||
*/
|
||||
HalpPendingInterruptCount[i]--;
|
||||
KiInterruptDispatch2(i + IRQ_BASE, NewIrql);
|
||||
}
|
||||
KeGetPcr()->Irql--;
|
||||
HalpEndSystemInterrupt(KeGetPcr()->Irql);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
VOID STATIC
|
||||
HalpLowerIrql(KIRQL NewIrql)
|
||||
{
|
||||
|
@ -100,7 +56,6 @@ HalpLowerIrql(KIRQL NewIrql)
|
|||
KeGetPcr()->Irql = NewIrql;
|
||||
return;
|
||||
}
|
||||
HalpExecuteIrqs(NewIrql);
|
||||
if (NewIrql >= DISPATCH_LEVEL)
|
||||
{
|
||||
KeGetPcr()->Irql = NewIrql;
|
||||
|
|
|
@ -664,7 +664,6 @@ KiCheckForKernelApcDelivery@0
|
|||
KiDeliverApc@12
|
||||
KiDispatchInterrupt@0
|
||||
KiEnableTimerWatchdog
|
||||
KiInterruptDispatch2@8
|
||||
KiIpiServiceRoutine@8
|
||||
@KiReleaseSpinLock@4
|
||||
KiUnexpectedInterrupt
|
||||
|
|
Loading…
Reference in a new issue