Add push lock structures
This commit is contained in:
@@ -47,6 +47,9 @@
|
||||
/* APC pending state length */
|
||||
#define KAPC_STATE_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
|
||||
|
||||
/* Push lock total bits */
|
||||
#define KPUSH_LOCK_TOTAL_BITS (sizeof(ULONG_PTR) * 8)
|
||||
|
||||
/* Kernel service descriptor tables count */
|
||||
#define KSERVICE_TABLES_COUNT 4
|
||||
|
||||
@@ -446,6 +449,36 @@ typedef struct _KGATE
|
||||
DISPATCHER_HEADER Header;
|
||||
} KGATE, *PKGATE;
|
||||
|
||||
/* Push Lock structure definition */
|
||||
typedef union _KPUSH_LOCK
|
||||
{
|
||||
struct
|
||||
{
|
||||
ULONG_PTR Locked:1;
|
||||
ULONG_PTR Waiting:1;
|
||||
ULONG_PTR Waking:1;
|
||||
ULONG_PTR MultipleShared:1;
|
||||
ULONG_PTR Shared:(KPUSH_LOCK_TOTAL_BITS - 4);
|
||||
};
|
||||
ULONG_PTR Value;
|
||||
PVOID Ptr;
|
||||
} KPUSH_LOCK, *PKPUSH_LOCK;
|
||||
|
||||
/* Push lock wait block structure definition */
|
||||
typedef struct _KPUSH_LOCK_WAIT_BLOCK
|
||||
{
|
||||
union
|
||||
{
|
||||
KGATE WakeGate;
|
||||
KEVENT WakeEvent;
|
||||
};
|
||||
PKPUSH_LOCK_WAIT_BLOCK Next;
|
||||
PKPUSH_LOCK_WAIT_BLOCK Last;
|
||||
PKPUSH_LOCK_WAIT_BLOCK Previous;
|
||||
LONG ShareCount;
|
||||
LONG Flags;
|
||||
} KPUSH_LOCK_WAIT_BLOCK, *PKPUSH_LOCK_WAIT_BLOCK;
|
||||
|
||||
/* Semaphore object structure definition */
|
||||
typedef struct _KSEMAPHORE
|
||||
{
|
||||
|
||||
@@ -266,6 +266,7 @@ typedef struct _KEVENT KEVENT, *PKEVENT;
|
||||
typedef struct _KGATE KGATE, *PKGATE;
|
||||
typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
|
||||
typedef struct _KPROCESS KPROCESS, *PKPROCESS;
|
||||
typedef struct _KPUSH_LOCK_WAIT_BLOCK KPUSH_LOCK_WAIT_BLOCK, *PKPUSH_LOCK_WAIT_BLOCK;
|
||||
typedef struct _KQUEUE KQUEUE, *PKQUEUE;
|
||||
typedef struct _KSEMAPHORE KSEMAPHORE, *PKSEMAPHORE;
|
||||
typedef struct _KSERVICE_DESCRIPTOR_TABLE KSERVICE_DESCRIPTOR_TABLE, *PKSERVICE_DESCRIPTOR_TABLE;
|
||||
@@ -387,6 +388,7 @@ typedef union _EFI_IA32_REGISTER_SET EFI_IA32_REGISTER_SET, *PEFI_IA32_REGISTER_
|
||||
typedef union _EFI_IP_ADDRESS EFI_IP_ADDRESS, *PEFI_IP_ADDRESS;
|
||||
typedef union _EFI_PXE_BASE_CODE_PACKET EFI_PXE_BASE_CODE_PACKET, *PEFI_PXE_BASE_CODE_PACKET;
|
||||
typedef union _EX_RUNDOWN_REFERENCE EX_RUNDOWN_REFERENCE, *PEX_RUNDOWN_REFERENCE;
|
||||
typedef union _KPUSH_LOCK KPUSH_LOCK, *PKPUSH_LOCK;
|
||||
typedef union _LARGE_INTEGER LARGE_INTEGER, *PLARGE_INTEGER;
|
||||
typedef union _ULARGE_INTEGER ULARGE_INTEGER, *PULARGE_INTEGER;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user