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/includ... ============================================================================== --- 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__)