Make KeGetCurrentIrql, KeLowerIrql, KfRaiseIrql, KeRaiseIrql, KeRaiseIrqlToDpcLevel...
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Thu, 21 Aug 2008 18:07:45 +0000 (18:07 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Thu, 21 Aug 2008 18:07:45 +0000 (18:07 +0000)
svn path=/branches/ros-amd64-bringup/; revision=35510

reactos/include/ddk/winddk.h

index f93c579..8de50fb 100644 (file)
@@ -9962,47 +9962,47 @@ KeRaiseIrqlToSynchLevel(
 
 #elif defined(_M_AMD64)
 
-/*
-NTKERNELAPI
-KIRQL
-KeGetCurrentIrql(
-    VOID);
-*/
 FORCEINLINE
 KIRQL
-_KeGetCurrentIrql(VOID)
+KeGetCurrentIrql(VOID)
 {
     return (KIRQL)__readcr8();
 }
-#define KeGetCurrentIrql _KeGetCurrentIrql
 
-NTKERNELAPI
+FORCEINLINE
 VOID
-KfLowerIrql(
-  IN KIRQL  NewIrql);
+KeLowerIrql(IN KIRQL NewIrql)
+{
+    ASSERT(KeGetCurrentIrql() >= NewIrql);
+    __writecr8(NewIrql);
+}
 
-NTKERNELAPI
+FORCEINLINE
 KIRQL
-KfRaiseIrql(
-  IN KIRQL  NewIrql);
+KfRaiseIrql(IN KIRQL NewIrql)
+{
+    KIRQL OldIrql;
 
-NTKERNELAPI
-KIRQL
-KeRaiseIrqlToDpcLevel(
-  VOID);
+    OldIrql = __readcr8();
+    ASSERT(OldIrql <= NewIrql);
+    __writecr8(NewIrql);
+    return OldIrql;
+}
+#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
 
-NTKERNELAPI
+FORCEINLINE
 KIRQL
-KeRaiseIrqlToSynchLevel(
-    VOID);
-
-NTKERNELAPI
-VOID
-KeLowerIrql(
-  IN KIRQL NewIrql);
-
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
+KeRaiseIrqlToDpcLevel(VOID)
+{
+    return KfRaiseIrql(DISPATCH_LEVEL);
+}
 
+FORCEINLINE
+KIRQL
+KeRaiseIrqlToSynchLevel(VOID)
+{
+    return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
+}
 
 #elif defined(__PowerPC__)