- Add -Wall and -Werror compile flags and fix resulting problems
authorGé van Geldorp <ge@gse.nl>
Wed, 5 Nov 2003 22:37:42 +0000 (22:37 +0000)
committerGé van Geldorp <ge@gse.nl>
Wed, 5 Nov 2003 22:37:42 +0000 (22:37 +0000)
- Reimplement KeAcquireSpinLockRaiseToSynch with the help of Vizzini

svn path=/trunk/; revision=6534

reactos/hal/halx86/Makefile
reactos/hal/halx86/irql.c
reactos/hal/halx86/spinlock.c

index 3447f39..5ed42e2 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.11 2003/08/07 04:03:22 royce Exp $
+# $Id: Makefile,v 1.12 2003/11/05 22:37:42 gvg Exp $
 
 PATH_TO_TOP = ../..
 
@@ -26,7 +26,7 @@ TARGET_LIBPATH = .
 
 TARGET_ASFLAGS = -I$(PATH_TO_TOP)/include -I$(PATH_TO_TOP)/ntoskrnl/include -D__ASM__
 
-TARGET_CFLAGS = -I./include -I$(PATH_TO_TOP)/ntoskrnl/include -g
+TARGET_CFLAGS = -I./include -I$(PATH_TO_TOP)/ntoskrnl/include -Wall -Werror
 
 # require os code to explicitly request A/W version of structs/functions
 TARGET_CFLAGS += -D_DISABLE_TIDENTS
index 31aa2e7..1441a72 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: irql.c,v 1.11 2003/11/04 21:36:22 gvg Exp $
+/* $Id: irql.c,v 1.12 2003/11/05 22:37:42 gvg Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -201,8 +201,6 @@ HalpLowerIrql(KIRQL NewIrql)
 VOID FASTCALL
 KfLowerIrql (KIRQL     NewIrql)
 {
-  KIRQL OldIrql;
-  
   DPRINT("KfLowerIrql(NewIrql %d)\n", NewIrql);
   
   if (NewIrql > CurrentIrql)
index c5224ec..1bee583 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: spinlock.c,v 1.4 2003/08/12 21:19:50 royce Exp $
+/* $Id: spinlock.c,v 1.5 2003/11/05 22:37:42 gvg Exp $
  *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
@@ -44,8 +44,23 @@ KeAcquireSpinLockRaiseToSynch (
        PKSPIN_LOCK     SpinLock
        )
 {
-  ASSERT_IRQL(SYNCH_LEVEL);
+  KIRQL OldIrql;
+  KIRQL NewIrql;
+
+#ifdef MP
+  NewIrql = IPI_LEVEL - 1;
+#else
+  NewIrql = DISPATCH_LEVEL;
+#endif
+
+  OldIrql = KeGetCurrentIrql();
+  if (OldIrql < NewIrql)
+    {
+      KeRaiseIrql(NewIrql, &OldIrql);
+    }
   KeAcquireSpinLockAtDpcLevel(SpinLock);
+
+  return OldIrql;
 }
 
 VOID STDCALL