Author: tkreuzer
Date: Thu Aug 21 13:07:45 2008
New Revision: 35510
URL:
http://svn.reactos.org/svn/reactos?rev=35510&view=rev
Log:
Make KeGetCurrentIrql, KeLowerIrql, KfRaiseIrql, KeRaiseIrql, KeRaiseIrqlToDpcLevel and
KeRaiseIrqlToSynchLevel intrinsics as in the WDK 2008.
Modified:
branches/ros-amd64-bringup/reactos/include/ddk/winddk.h
Modified: branches/ros-amd64-bringup/reactos/include/ddk/winddk.h
URL:
http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/inclu…
==============================================================================
--- branches/ros-amd64-bringup/reactos/include/ddk/winddk.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/include/ddk/winddk.h [iso-8859-1] Thu Aug 21
13:07:45 2008
@@ -9962,47 +9962,47 @@
#elif defined(_M_AMD64)
-/*
-NTKERNELAPI
-KIRQL
-KeGetCurrentIrql(
- VOID);
-*/
FORCEINLINE
KIRQL
-_KeGetCurrentIrql(VOID)
+KeGetCurrentIrql(VOID)
{
return (KIRQL)__readcr8();
}
-#define KeGetCurrentIrql _KeGetCurrentIrql
-
-NTKERNELAPI
-VOID
-KfLowerIrql(
- IN KIRQL NewIrql);
-
-NTKERNELAPI
+
+FORCEINLINE
+VOID
+KeLowerIrql(IN KIRQL NewIrql)
+{
+ ASSERT(KeGetCurrentIrql() >= NewIrql);
+ __writecr8(NewIrql);
+}
+
+FORCEINLINE
KIRQL
-KfRaiseIrql(
- IN KIRQL NewIrql);
-
-NTKERNELAPI
+KfRaiseIrql(IN KIRQL NewIrql)
+{
+ KIRQL OldIrql;
+
+ OldIrql = __readcr8();
+ ASSERT(OldIrql <= NewIrql);
+ __writecr8(NewIrql);
+ return OldIrql;
+}
+#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
+
+FORCEINLINE
KIRQL
-KeRaiseIrqlToDpcLevel(
- VOID);
-
-NTKERNELAPI
+KeRaiseIrqlToDpcLevel(VOID)
+{
+ return KfRaiseIrql(DISPATCH_LEVEL);
+}
+
+FORCEINLINE
KIRQL
-KeRaiseIrqlToSynchLevel(
- VOID);
-
-NTKERNELAPI
-VOID
-KeLowerIrql(
- IN KIRQL NewIrql);
-
-#define KeRaiseIrql(a,b) *(b) = KfRaiseIrql(a)
-
+KeRaiseIrqlToSynchLevel(VOID)
+{
+ return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
+}
#elif defined(__PowerPC__)