1 #ifndef __CROSS_NT_RWLOCK__H__
2 #define __CROSS_NT_RWLOCK__H__
4 #ifndef MAXIMUM_PROCESSORS
5 #define MAXIMUM_PROCESSORS 32
8 typedef union _NDIS_RW_LOCK_REFCOUNT
{
10 UCHAR cacheLine
[16]; // One refCount per cache line
11 } NDIS_RW_LOCK_REFCOUNT
;
13 typedef struct _NDIS_RW_LOCK
{
22 NDIS_RW_LOCK_REFCOUNT RefCount
[MAXIMUM_PROCESSORS
];
23 } NDIS_RW_LOCK
, *PNDIS_RW_LOCK
;
25 typedef struct _LOCK_STATE
{
28 } LOCK_STATE
, *PLOCK_STATE
;
30 #define RWLOCK_STATE_FREE 0
31 #define RWLOCK_STATE_READ_ACQUIRED 1
32 #define RWLOCK_STATE_WRITE_ACQUIRED 2
33 #define RWLOCK_STATE_RECURSIVE 3
34 #define RWLOCK_STATE_RELEASED 0xffff
36 #define RWLOCK_FOR_WRITE TRUE
37 #define RWLOCK_FOR_READ FALSE
39 #endif /* __CROSS_NT_RWLOCK__H__ */