From 280da54a61535b8219ec0bfcc53a88f79f647632 Mon Sep 17 00:00:00 2001 From: Alex Ionescu Date: Wed, 23 Aug 2006 06:38:46 +0000 Subject: [PATCH] - Switch HalEndSystemInterrupt to ASM version and get completely rid of the irql.C file. svn path=/trunk/; revision=23663 --- reactos/hal/halx86/generic/generic.rbuild | 1 - reactos/hal/halx86/generic/irq.S | 4 +- reactos/hal/halx86/generic/irql.c | 54 ----------------------- 3 files changed, 1 insertion(+), 58 deletions(-) delete mode 100644 reactos/hal/halx86/generic/irql.c diff --git a/reactos/hal/halx86/generic/generic.rbuild b/reactos/hal/halx86/generic/generic.rbuild index 8acc2e556cd..942ef80f9ce 100644 --- a/reactos/hal/halx86/generic/generic.rbuild +++ b/reactos/hal/halx86/generic/generic.rbuild @@ -31,7 +31,6 @@ ipi.c - irql.c irq.S processor.c resource.c diff --git a/reactos/hal/halx86/generic/irq.S b/reactos/hal/halx86/generic/irq.S index a36010692e7..9b05cbd4b45 100644 --- a/reactos/hal/halx86/generic/irq.S +++ b/reactos/hal/halx86/generic/irq.S @@ -367,7 +367,6 @@ DoneBegin: ret 12 .endfunc -#if 0 .globl _HalEndSystemInterrupt@8 .func HalEndSystemInterrupt@8 _HalEndSystemInterrupt@8: @@ -389,7 +388,7 @@ SkipMask2: /* Set IRQL and check if there are pending software interrupts */ mov [fs:KPCR_IRQL], cl #if 0 - mov eax, [fs:KPCR_IDR] + mov eax, [fs:KPCR_IRR] mov al, _SoftIntByteTable[eax] cmp al, cl ja DoCall @@ -402,7 +401,6 @@ DoCall: add esp, 8 jmp SoftIntHandlerTable2[eax*4] .endfunc -#endif .globl @KfLowerIrql@4 .func @KfLowerIrql@4 diff --git a/reactos/hal/halx86/generic/irql.c b/reactos/hal/halx86/generic/irql.c deleted file mode 100644 index 710e304a5b6..00000000000 --- a/reactos/hal/halx86/generic/irql.c +++ /dev/null @@ -1,54 +0,0 @@ -/* $Id$ - * - * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS kernel - * FILE: ntoskrnl/hal/x86/irql.c - * PURPOSE: Implements IRQLs - * PROGRAMMER: David Welch (welch@cwcom.net) - */ - -/* INCLUDES *****************************************************************/ - -#include -#define NDEBUG -#include - -/* GLOBALS ******************************************************************/ - -typedef VOID (*PSW_HANDLER)(VOID); -extern PSW_HANDLER SoftIntHandlerTable[]; -extern ULONG KiI8259MaskTable[]; -extern UCHAR SoftIntByteTable[]; - -/* FUNCTIONS ****************************************************************/ - - -VOID STDCALL HalEndSystemInterrupt (KIRQL Irql, ULONG Unknown2) -{ - ULONG Mask; - ULONG Flags; - UCHAR Pending; - - Ki386SaveFlags(Flags); - Ki386DisableInterrupts(); - - if (KeGetPcr()->Irql > DISPATCH_LEVEL) - { - Mask = KeGetPcr()->IDR | KiI8259MaskTable[Irql]; - WRITE_PORT_UCHAR((PUCHAR)0x21, (UCHAR)Mask); - Mask >>= 8; - WRITE_PORT_UCHAR((PUCHAR)0xa1, (UCHAR)Mask); - } - - - KeGetPcr()->Irql = Irql; - Pending = SoftIntByteTable[KeGetPcr()->IRR]; - if (Pending > Irql) - { - SoftIntHandlerTable[Pending](); - } - Ki386RestoreFlags(Flags); -} - - -/* EOF */