/* INCLUDES *****************************************************************/
-#include <ddk/ntddk.h>
-#include <internal/ke.h>
-#include <internal/ps.h>
-#include <ntos/minmax.h>
-#include <halirq.h>
#include <hal.h>
-#include <mps.h>
-#include <apic.h>
-
#define NDEBUG
-#include <internal/debug.h>
+#include <debug.h>
/* GLOBALS ******************************************************************/;
/* FUNCTIONS ****************************************************************/
+#undef KeGetCurrentIrql
KIRQL STDCALL KeGetCurrentIrql (VOID)
/*
* PURPOSE: Returns the current irq level
Ki386SaveFlags(Flags);
Ki386DisableInterrupts();
- irql = Ki386ReadFsByte(offsetof(KPCR, Irql));
+ Ki386ReadFsByte(FIELD_OFFSET(KPCR, Irql), irql);
if (irql > HIGH_LEVEL)
{
DPRINT1 ("CurrentIrql %x\n", irql);
}
+#undef KeSetCurrentIrql
VOID KeSetCurrentIrql (KIRQL NewIrql)
/*
* PURPOSE: Sets the current irq level without taking any action
}
Ki386SaveFlags(Flags);
Ki386DisableInterrupts();
- Ki386WriteFsByte(offsetof(KPCR, Irql), NewIrql);
+ Ki386WriteFsByte(FIELD_OFFSET(KPCR, Irql), NewIrql);
if (Flags & X86_EFLAGS_IF)
{
Ki386EnableInterrupts();
}
VOID
-HalpLowerIrql(KIRQL NewIrql, BOOL FromHalEndSystemInterrupt)
+HalpLowerIrql(KIRQL NewIrql, BOOLEAN FromHalEndSystemInterrupt)
{
ULONG Flags;
+ UCHAR DpcRequested;
if (NewIrql >= DISPATCH_LEVEL)
{
KeSetCurrentIrql (NewIrql);
{
KeSetCurrentIrql (DISPATCH_LEVEL);
APICWrite(APIC_TPR, IRQL2TPR (DISPATCH_LEVEL) & APIC_TPR_PRI);
- if (FromHalEndSystemInterrupt || Ki386ReadFsByte(offsetof(KPCR, HalReserved[HAL_DPC_REQUEST])))
+ Ki386ReadFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_DPC_REQUEST]), DpcRequested);
+ if (FromHalEndSystemInterrupt || DpcRequested)
{
- Ki386WriteFsByte(offsetof(KPCR, HalReserved[HAL_DPC_REQUEST]), 0);
+ Ki386WriteFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_DPC_REQUEST]), 0);
Ki386EnableInterrupts();
KiDispatchInterrupt();
if (!(Flags & X86_EFLAGS_IF))
*
* NOTES
*/
-
+#undef KeLowerIrql
VOID STDCALL
KeLowerIrql (KIRQL NewIrql)
{
* NOTES
* Calls KfRaiseIrql
*/
+#undef KeRaiseIrql
VOID STDCALL
KeRaiseIrql (KIRQL NewIrql,
PKIRQL OldIrql)
switch (Request)
{
case APC_LEVEL:
- Ki386WriteFsByte(offsetof(KPCR, HalReserved[HAL_APC_REQUEST]), 1);
+ Ki386WriteFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_APC_REQUEST]), 1);
break;
case DISPATCH_LEVEL:
- Ki386WriteFsByte(offsetof(KPCR, HalReserved[HAL_DPC_REQUEST]), 1);
+ Ki386WriteFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_DPC_REQUEST]), 1);
break;
default: