2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS TCP/IP protocol driver
5 * PURPOSE: Locking and unlocking
6 * PROGRAMMERS: Art Yerkes
11 KIRQL KernelIrql
= PASSIVE_LEVEL
;
13 KIRQL
TcpipGetCurrentIrql() { return KernelIrql
; }
15 VOID
TcpipInitializeSpinLock( PKSPIN_LOCK SpinLock
) {
18 VOID
TcpipAcquireSpinLock( PKSPIN_LOCK SpinLock
, PKIRQL Irql
) {
20 KernelIrql
= DISPATCH_LEVEL
;
23 VOID
TcpipAcquireSpinLockAtDpcLevel( PKSPIN_LOCK SpinLock
) {
24 ASSERT(KernelIrql
== DISPATCH_LEVEL
);
27 VOID
TcpipReleaseSpinLock( PKSPIN_LOCK SpinLock
, KIRQL Irql
) {
28 ASSERT( Irql
<= KernelIrql
);
32 VOID
TcpipReleaseSpinLockFromDpcLevel( PKSPIN_LOCK SpinLock
) {
33 ASSERT(KernelIrql
== DISPATCH_LEVEL
);
36 VOID
TcpipInterlockedInsertTailList( PLIST_ENTRY ListHead
,
39 InsertTailList( ListHead
, Item
);
42 VOID
TcpipAcquireFastMutex( PFAST_MUTEX Mutex
) {
45 VOID
TcpipReleaseFastMutex( PFAST_MUTEX Mutex
) {
48 VOID
TcpipRecursiveMutexInit( PRECURSIVE_MUTEX RecMutex
) {
51 UINT
TcpipRecursiveMutexEnter( PRECURSIVE_MUTEX RecMutex
, BOOL ToWrite
) {
55 VOID
TcpipRecursiveMutexLeave( PRECURSIVE_MUTEX RecMutex
) {