Make KeGetCurrentIrql, KeLowerIrql, KfRaiseIrql, KeRaiseIrql, KeRaiseIrqlToDpcLevel and KeRaiseIrqlToSynchLevel intrinsics as in the WDK 2008.

svn path=/branches/ros-amd64-bringup/; revision=35510
This commit is contained in:
Timo Kreuzer
2008-08-21 18:07:45 +00:00
parent c4c7933979
commit 56d9201788
+29 -29
View 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);
NTKERNELAPI
KIRQL
KeRaiseIrqlToDpcLevel(
VOID);
NTKERNELAPI
KIRQL
KeRaiseIrqlToSynchLevel(
VOID);
NTKERNELAPI
VOID
KeLowerIrql(
IN KIRQL NewIrql);
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)
{
return KfRaiseIrql(DISPATCH_LEVEL);
}
FORCEINLINE
KIRQL
KeRaiseIrqlToSynchLevel(VOID)
{
return KfRaiseIrql(12); // SYNCH_LEVEL = IPI_LEVEL - 2
}
#elif defined(__PowerPC__)