mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 12:23:30 +00:00
- Stored the apc/dpc requests in the KPCR.
svn path=/trunk/; revision=11656
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* $Id: irql.c,v 1.20 2004/11/10 02:50:59 ion Exp $
|
||||
/* $Id: irql.c,v 1.21 2004/11/14 19:04:42 hbirr Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
@@ -21,12 +21,6 @@
|
||||
|
||||
/* GLOBALS ******************************************************************/
|
||||
|
||||
/*
|
||||
* PURPOSE: Current irq level
|
||||
*/
|
||||
static BOOLEAN ApcRequested = FALSE;
|
||||
static BOOLEAN DpcRequested = FALSE;
|
||||
|
||||
typedef union
|
||||
{
|
||||
USHORT both;
|
||||
@@ -175,9 +169,9 @@ HalpLowerIrql(KIRQL NewIrql)
|
||||
return;
|
||||
}
|
||||
KeGetCurrentKPCR()->Irql = DISPATCH_LEVEL;
|
||||
if (DpcRequested)
|
||||
if (KeGetCurrentKPCR()->HalReserved[HAL_DPC_REQUEST])
|
||||
{
|
||||
DpcRequested = FALSE;
|
||||
KeGetCurrentKPCR()->HalReserved[HAL_DPC_REQUEST] = FALSE;
|
||||
KiDispatchInterrupt();
|
||||
}
|
||||
KeGetCurrentKPCR()->Irql = APC_LEVEL;
|
||||
@@ -467,11 +461,11 @@ HalRequestSoftwareInterrupt(
|
||||
switch (Request)
|
||||
{
|
||||
case APC_LEVEL:
|
||||
ApcRequested = TRUE;
|
||||
KeGetCurrentKPCR()->HalReserved[HAL_APC_REQUEST] = TRUE;
|
||||
break;
|
||||
|
||||
case DISPATCH_LEVEL:
|
||||
DpcRequested = TRUE;
|
||||
KeGetCurrentKPCR()->HalReserved[HAL_DPC_REQUEST] = TRUE;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
Reference in New Issue
Block a user