-/* $Id: spinlock.c,v 1.4 2003/08/12 21:19:50 royce Exp $
+/* $Id: spinlock.c,v 1.9 2004/10/22 20:08:22 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* OldIrql (OUT) = Caller supplied storage for the previous irql
*/
{
- KeRaiseIrql(DISPATCH_LEVEL,OldIrql);
- KeAcquireSpinLockAtDpcLevel(SpinLock);
+ *OldIrql = KfAcquireSpinLock(SpinLock);
}
KIRQL FASTCALL
PKSPIN_LOCK SpinLock
)
{
- ASSERT_IRQL(SYNCH_LEVEL);
- KeAcquireSpinLockAtDpcLevel(SpinLock);
+ KIRQL OldIrql;
+
+ OldIrql = KfRaiseIrql(SYNCH_LEVEL);
+ KiAcquireSpinLock(SpinLock);
+
+ return OldIrql;
}
VOID STDCALL
* NewIrql = Irql level before acquiring the spinlock
*/
{
- KeReleaseSpinLockFromDpcLevel(SpinLock);
- KeLowerIrql(NewIrql);
+ KfReleaseSpinLock(SpinLock, NewIrql);
}
KIRQL FASTCALL
{
KIRQL OldIrql;
- KeRaiseIrql(DISPATCH_LEVEL, &OldIrql);
- KeAcquireSpinLockAtDpcLevel(SpinLock);
+ ASSERT(KeGetCurrentIrql() <= DISPATCH_LEVEL);
+
+ OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
+ KiAcquireSpinLock(SpinLock);
return OldIrql;
}
* NewIrql = Irql level before acquiring the spinlock
*/
{
- KeReleaseSpinLockFromDpcLevel(SpinLock);
- KeLowerIrql(NewIrql);
+ ASSERT(KeGetCurrentIrql() == DISPATCH_LEVEL || KeGetCurrentIrql() == SYNCH_LEVEL);
+ KiReleaseSpinLock(SpinLock);
+ KfLowerIrql(NewIrql);
}
/* EOF */