[HAL]
[reactos.git] / reactos / hal / halx86 / mp / mpsirql.c
index d86bdce..de87b14 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
- * FILE:            ntoskrnl/hal/x86/mpsirql.c
+ * FILE:            hal/halx86/mp/mpsirql.c
  * PURPOSE:         Implements IRQLs for multiprocessor systems
  * PROGRAMMERS:     David Welch (welch@cwcom.net)
  *                  Casper S. Hornstrup (chorns@users.sourceforge.net)
@@ -28,9 +28,9 @@ KIRQL NTAPI KeGetCurrentIrql (VOID)
  */
 {
   KIRQL irql;
-  ULONG Flags = 0;
+  ULONG Flags;
 
-  Ke386SaveFlags(Flags);
+  Flags = __readeflags();
   _disable();
 
   irql = __readfsbyte(FIELD_OFFSET(KPCR, Irql));
@@ -53,13 +53,13 @@ VOID KeSetCurrentIrql (KIRQL NewIrql)
  * PURPOSE: Sets the current irq level without taking any action
  */
 {
-  ULONG Flags = 0;
+  ULONG Flags;
   if (NewIrql > HIGH_LEVEL)
   {
     DPRINT1 ("NewIrql %x\n", NewIrql);
     ASSERT(FALSE);
   }
-  Ke386SaveFlags(Flags);
+  Flags = __readeflags();
   _disable();
   __writefsbyte(FIELD_OFFSET(KPCR, Irql), NewIrql);
   if (Flags & EFLAGS_INTERRUPT_MASK)
@@ -71,7 +71,7 @@ VOID KeSetCurrentIrql (KIRQL NewIrql)
 VOID 
 HalpLowerIrql(KIRQL NewIrql, BOOLEAN FromHalEndSystemInterrupt)
 {
-  ULONG Flags = 0;
+  ULONG Flags;
   UCHAR DpcRequested;
   if (NewIrql >= DISPATCH_LEVEL)
     {
@@ -79,7 +79,7 @@ HalpLowerIrql(KIRQL NewIrql, BOOLEAN FromHalEndSystemInterrupt)
       APICWrite(APIC_TPR, IRQL2TPR (NewIrql) & APIC_TPR_PRI);
       return;
     }
-  Ke386SaveFlags(Flags);
+  Flags = __readeflags();
   if (KeGetCurrentIrql() > APC_LEVEL)
     {
       KeSetCurrentIrql (DISPATCH_LEVEL);
@@ -188,9 +188,9 @@ KIRQL FASTCALL
 KfRaiseIrql (KIRQL     NewIrql)
 {
   KIRQL OldIrql;
-  ULONG Flags = 0;
+  ULONG Flags;
  
-  Ke386SaveFlags(Flags);
+  Flags = __readeflags();
   _disable();
 
   OldIrql = KeGetCurrentIrql ();
@@ -292,10 +292,10 @@ KeRaiseIrqlToSynchLevel (VOID)
 
 BOOLEAN NTAPI
 HalBeginSystemInterrupt (KIRQL Irql,
-                        ULONG Vector,
+                        UCHAR Vector,
                         PKIRQL OldIrql)
 {
-  ULONG Flags = 0;
+  ULONG Flags;
   DPRINT("Vector (0x%X)  Irql (0x%X)\n", Vector, Irql);
   
   if (KeGetCurrentIrql () >= Irql)
@@ -304,7 +304,7 @@ HalBeginSystemInterrupt (KIRQL Irql,
     ASSERT(FALSE);
   }
 
-  Ke386SaveFlags(Flags);
+  Flags = __readeflags();
   if (Flags & EFLAGS_INTERRUPT_MASK)
   {
      DPRINT1("HalBeginSystemInterrupt was called with interrupt's enabled\n");
@@ -319,13 +319,13 @@ HalBeginSystemInterrupt (KIRQL Irql,
 
 VOID NTAPI
 HalEndSystemInterrupt (KIRQL Irql,
-                      ULONG Unknown2)
+                       IN PKTRAP_FRAME TrapFrame)
 /*
  * FUNCTION: Finish a system interrupt and restore the specified irq level.
  */
 {
-  ULONG Flags = 0;
-  Ke386SaveFlags(Flags);
+  ULONG Flags;
+  Flags = __readeflags();
 
   if (Flags & EFLAGS_INTERRUPT_MASK)
   {
@@ -336,9 +336,10 @@ HalEndSystemInterrupt (KIRQL Irql,
   HalpLowerIrql (Irql, TRUE);
 }
   
-BOOLEAN NTAPI
-HalDisableSystemInterrupt (ULONG Vector,
-                          KIRQL Irql)
+VOID
+NTAPI
+HalDisableSystemInterrupt(UCHAR Vector,
+                         KIRQL Irql)
 {
   ULONG irq;
 
@@ -348,18 +349,19 @@ HalDisableSystemInterrupt (ULONG Vector,
       Vector >= FIRST_DEVICE_VECTOR + NUMBER_DEVICE_VECTORS)  
   {
     DPRINT1("Not a device interrupt, vector=%x\n", Vector);
-    return FALSE;
+    ASSERT(FALSE);
+    return;
   }
 
   irq = VECTOR2IRQ (Vector);
   IOAPICMaskIrq (irq);
 
-  return TRUE;  
+  return;  
 }
 
 
 BOOLEAN NTAPI
-HalEnableSystemInterrupt (ULONG Vector,
+HalEnableSystemInterrupt (UCHAR Vector,
                          KIRQL Irql,
                          KINTERRUPT_MODE InterruptMode)
 {