Introduce KMUTEX structure and remove KGATE usage from push lock
All checks were successful
Builds / ExectOS (i686, release) (push) Successful in 32s
Builds / ExectOS (amd64, release) (push) Successful in 35s
Builds / ExectOS (amd64, debug) (push) Successful in 53s
Builds / ExectOS (i686, debug) (push) Successful in 51s

This commit is contained in:
2026-06-28 18:53:53 +02:00
parent 757acb732e
commit 42d6426318
2 changed files with 9 additions and 9 deletions

View File

@@ -443,11 +443,15 @@ typedef struct _KAPC_STATE
BOOLEAN UserApcPending; BOOLEAN UserApcPending;
} KAPC_STATE, *PKAPC_STATE; } KAPC_STATE, *PKAPC_STATE;
/* Event gate structure definition */ /* Mutex object structure definition */
typedef struct _KGATE typedef struct _KMUTEX
{ {
DISPATCHER_HEADER Header; DISPATCHER_HEADER Header;
} KGATE, *PKGATE; LIST_ENTRY MutexListEntry;
PKTHREAD OwnerThread;
BOOLEAN Abandoned;
UCHAR ApcDisable;
} KMUTEX, *PKMUTEX;
/* Push Lock structure definition */ /* Push Lock structure definition */
typedef union _KPUSH_LOCK typedef union _KPUSH_LOCK
@@ -467,11 +471,7 @@ typedef union _KPUSH_LOCK
/* Push lock wait block structure definition */ /* Push lock wait block structure definition */
typedef struct _KPUSH_LOCK_WAIT_BLOCK typedef struct _KPUSH_LOCK_WAIT_BLOCK
{ {
union
{
KGATE WakeGate;
KEVENT WakeEvent; KEVENT WakeEvent;
};
PKPUSH_LOCK_WAIT_BLOCK Next; PKPUSH_LOCK_WAIT_BLOCK Next;
PKPUSH_LOCK_WAIT_BLOCK Last; PKPUSH_LOCK_WAIT_BLOCK Last;
PKPUSH_LOCK_WAIT_BLOCK Previous; PKPUSH_LOCK_WAIT_BLOCK Previous;

View File

@@ -263,8 +263,8 @@ typedef struct _KDPC KDPC, *PKDPC;
typedef struct _KDPC_DATA KDPC_DATA, *PKDPC_DATA; typedef struct _KDPC_DATA KDPC_DATA, *PKDPC_DATA;
typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK; typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK;
typedef struct _KEVENT KEVENT, *PKEVENT; typedef struct _KEVENT KEVENT, *PKEVENT;
typedef struct _KGATE KGATE, *PKGATE;
typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE; typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;
typedef struct _KMUTEX KMUTEX, *PKMUTEX;
typedef struct _KPROCESS KPROCESS, *PKPROCESS; typedef struct _KPROCESS KPROCESS, *PKPROCESS;
typedef struct _KPUSH_LOCK_WAIT_BLOCK KPUSH_LOCK_WAIT_BLOCK, *PKPUSH_LOCK_WAIT_BLOCK; typedef struct _KPUSH_LOCK_WAIT_BLOCK KPUSH_LOCK_WAIT_BLOCK, *PKPUSH_LOCK_WAIT_BLOCK;
typedef struct _KQUEUE KQUEUE, *PKQUEUE; typedef struct _KQUEUE KQUEUE, *PKQUEUE;