/* FUNCTIONS ****************************************************************/
-VOID FASTCALL
-KfLowerIrql (KIRQL NewIrql)
-{
- ULONG Mask;
- ULONG Flags;
- UCHAR Pending;
-
- Ki386SaveFlags(Flags);
- Ki386DisableInterrupts();
-
- if (KeGetPcr()->Irql > DISPATCH_LEVEL)
- {
- Mask = KeGetPcr()->IDR | KiI8259MaskTable[NewIrql];
- WRITE_PORT_UCHAR((PUCHAR)0x21, (UCHAR)Mask);
- Mask >>= 8;
- WRITE_PORT_UCHAR((PUCHAR)0xa1, (UCHAR)Mask);
- }
-
-
- KeGetPcr()->Irql = NewIrql;
- Pending = SoftIntByteTable[KeGetPcr()->IRR];
- if (Pending > NewIrql)
- {
- SoftIntHandlerTable[Pending]();
- }
- Ki386RestoreFlags(Flags);
-}
VOID STDCALL HalEndSystemInterrupt (KIRQL Irql, ULONG Unknown2)
{