Author: ion Date: Wed Aug 23 10:38:46 2006 New Revision: 23663
URL: http://svn.reactos.org/svn/reactos?rev=23663&view=rev Log: - Switch HalEndSystemInterrupt to ASM version and get completely rid of the irql.C file.
Removed: trunk/reactos/hal/halx86/generic/irql.c Modified: trunk/reactos/hal/halx86/generic/generic.rbuild trunk/reactos/hal/halx86/generic/irq.S
Modified: trunk/reactos/hal/halx86/generic/generic.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/generic.... ============================================================================== --- trunk/reactos/hal/halx86/generic/generic.rbuild (original) +++ trunk/reactos/hal/halx86/generic/generic.rbuild Wed Aug 23 10:38:46 2006 @@ -31,7 +31,6 @@ <define name="_NTHAL_" /> <define name="__USE_W32API" /> <file>ipi.c</file> - <file>irql.c</file> <file>irq.S</file> <file>processor.c</file> <file>resource.c</file>
Modified: trunk/reactos/hal/halx86/generic/irq.S URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/irq.S?re... ============================================================================== --- trunk/reactos/hal/halx86/generic/irq.S (original) +++ trunk/reactos/hal/halx86/generic/irq.S Wed Aug 23 10:38:46 2006 @@ -367,7 +367,6 @@ ret 12 .endfunc
-#if 0 .globl _HalEndSystemInterrupt@8 .func HalEndSystemInterrupt@8 _HalEndSystemInterrupt@8: @@ -389,7 +388,7 @@ /* 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 @@ add esp, 8 jmp SoftIntHandlerTable2[eax*4] .endfunc -#endif
.globl @KfLowerIrql@4 .func @KfLowerIrql@4
Removed: trunk/reactos/hal/halx86/generic/irql.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/irql.c?r... ============================================================================== --- trunk/reactos/hal/halx86/generic/irql.c (original) +++ trunk/reactos/hal/halx86/generic/irql.c (removed) @@ -1,54 +1,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 <hal.h> -#define NDEBUG -#include <debug.h> - -/* 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 */