Implement kernel push lock infrastructure
All checks were successful
Builds / ExectOS (i686, release) (push) Successful in 33s
Builds / ExectOS (amd64, release) (push) Successful in 34s
Builds / ExectOS (i686, debug) (push) Successful in 43s
Builds / ExectOS (amd64, debug) (push) Successful in 46s

This commit is contained in:
2026-06-29 18:25:40 +02:00
parent 9ef8c569d5
commit 84d35e3c97
5 changed files with 1041 additions and 1 deletions

View File

@@ -47,8 +47,20 @@
/* APC pending state length */
#define KAPC_STATE_LENGTH (FIELD_OFFSET(KAPC_STATE, UserApcPending) + sizeof(BOOLEAN))
/* Push lock total bits */
/* Indices used to access the PushLock data structure */
#define KPUSHLOCK_INDEX ((ULONG_PTR)0x00)
#define KPUSHLOCK_LOCK ((ULONG_PTR)0x01)
#define KPUSHLOCK_WAITING ((ULONG_PTR)0x02)
#define KPUSHLOCK_WAKING ((ULONG_PTR)0x04)
#define KPUSHLOCK_MULTIPLE_SHARED ((ULONG_PTR)0x08)
#define KPUSHLOCK_INCREMENT_SHARED ((ULONG_PTR)0x10)
/* Mask for the pointer bits */
#define KPUSHLOCK_PTR_BITS ((ULONG_PTR)0x0F)
/* PushLock related definitions */
#define KPUSH_LOCK_TOTAL_BITS (sizeof(ULONG_PTR) * 8)
#define KPUSH_LOCK_SPIN_COUNT 1024
/* Kernel service descriptor tables count */
#define KSERVICE_TABLES_COUNT 4