- Do not generate manifest files for drivers or native apps.
[reactos.git] / reactos / drivers / net / tcpip / recmutex / recmutex.h
1 #ifndef _ROSRTL_RECMUTEX_H
2 #define _ROSRTL_RECMUTEX_H
3
4 typedef struct _RECURSIVE_MUTEX {
5 /* Lock. */
6 FAST_MUTEX Mutex;
7 /* Number of times this object was locked */
8 SIZE_T LockCount;
9 /* CurrentThread */
10 PVOID CurrentThread;
11 /* Notification event which signals that another thread can take over */
12 KEVENT StateLockedEvent;
13 /* IRQL from spin lock */
14 KIRQL OldIrql;
15 /* Is Locked */
16 BOOLEAN Locked;
17 /* Is reader or writer phase */
18 BOOLEAN Writer;
19 /* Spin lock needed for */
20 KSPIN_LOCK SpinLock;
21 } RECURSIVE_MUTEX, *PRECURSIVE_MUTEX;
22
23 extern VOID RecursiveMutexInit( PRECURSIVE_MUTEX RecMutex );
24 extern SIZE_T RecursiveMutexEnter( PRECURSIVE_MUTEX RecMutex, BOOLEAN ToRead );
25 extern VOID RecursiveMutexLeave( PRECURSIVE_MUTEX RecMutex );
26
27 #endif/*_ROSRTL_RECMUTEX_H*/