Extend processor affinity structures to support group affinity
Some checks failed
Builds / ExectOS (amd64, debug) (push) Failing after 33s
Builds / ExectOS (amd64, release) (push) Failing after 31s
Builds / ExectOS (i686, debug) (push) Failing after 31s
Builds / ExectOS (i686, release) (push) Failing after 30s

This commit is contained in:
2026-06-01 01:03:18 +02:00
parent 0aabc206a1
commit a7c2182d4a
2 changed files with 23 additions and 5 deletions

View File

@@ -313,6 +313,23 @@ typedef struct _EXCEPTION_RECORD
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS]; ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD, *PEXCEPTION_RECORD; } EXCEPTION_RECORD, *PEXCEPTION_RECORD;
/* Group affinity structure definition */
typedef struct _GROUP_AFFINITY
{
KAFFINITY Mask;
USHORT Group;
USHORT Reserved[3];
} GROUP_AFFINITY, *PGROUP_AFFINITY;
/* Extended affinity structure definition */
typedef struct _KAFFINITY_MAP
{
USHORT Count;
USHORT Size;
ULONG Reserved;
KAFFINITY Bitmap[1];
} KAFFINITY_MAP, *PKAFFINITY_MAP;
/* Asynchronous Procedure Call (APC) object structure definition */ /* Asynchronous Procedure Call (APC) object structure definition */
typedef struct _KAPC typedef struct _KAPC
{ {
@@ -469,7 +486,8 @@ typedef struct _KPROCESS
ULONG_PTR DirectoryTable[2]; ULONG_PTR DirectoryTable[2];
USHORT IopmOffset; USHORT IopmOffset;
UCHAR Iopl; UCHAR Iopl;
VOLATILE KAFFINITY ActiveProcessors; KAFFINITY_MAP Affinity;
VOLATILE KAFFINITY_MAP ActiveProcessors;
ULONG KernelTime; ULONG KernelTime;
ULONG UserTime; ULONG UserTime;
LIST_ENTRY ReadyListHead; LIST_ENTRY ReadyListHead;
@@ -477,7 +495,6 @@ typedef struct _KPROCESS
PVOID VdmTrapHandler; PVOID VdmTrapHandler;
LIST_ENTRY ThreadListHead; LIST_ENTRY ThreadListHead;
KSPIN_LOCK ProcessLock; KSPIN_LOCK ProcessLock;
KAFFINITY Affinity;
union union
{ {
struct struct
@@ -532,7 +549,6 @@ typedef struct _KTHREAD
PVOID StackBase; PVOID StackBase;
PVOID StackLimit; PVOID StackLimit;
KSPIN_LOCK ThreadLock; KSPIN_LOCK ThreadLock;
ULONG ContextSwitches; ULONG ContextSwitches;
VOLATILE UCHAR State; VOLATILE UCHAR State;
UCHAR NpxState; UCHAR NpxState;
@@ -595,9 +611,9 @@ typedef struct _KTHREAD
CHAR PreviousMode; CHAR PreviousMode;
UCHAR ResourceIndex; UCHAR ResourceIndex;
UCHAR DisableBoost; UCHAR DisableBoost;
KAFFINITY UserAffinity; GROUP_AFFINITY UserAffinity;
PKPROCESS Process; PKPROCESS Process;
KAFFINITY Affinity; GROUP_AFFINITY Affinity;
PVOID ServiceTable; PVOID ServiceTable;
PKAPC_STATE ApcStatePointer[2]; PKAPC_STATE ApcStatePointer[2];
KAPC_STATE SavedApcState; KAPC_STATE SavedApcState;

View File

@@ -248,9 +248,11 @@ typedef struct _EXCEPTION_REGISTRATION_RECORD EXCEPTION_REGISTRATION_RECORD, *PE
typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK; typedef struct _FIRMWARE_INFORMATION_BLOCK FIRMWARE_INFORMATION_BLOCK, *PFIRMWARE_INFORMATION_BLOCK;
typedef struct _FLOAT128 FLOAT128, *PFLOAT128; typedef struct _FLOAT128 FLOAT128, *PFLOAT128;
typedef struct _GENERIC_ADDRESS GENERIC_ADDRESS, *PGENERIC_ADDRESS; typedef struct _GENERIC_ADDRESS GENERIC_ADDRESS, *PGENERIC_ADDRESS;
typedef struct _GROUP_AFFINITY GROUP_AFFINITY, *PGROUP_AFFINITY;
typedef struct _GUID GUID, *PGUID; typedef struct _GUID GUID, *PGUID;
typedef struct _HL_FRAMEBUFFER_DATA HL_FRAMEBUFFER_DATA, *PHL_FRAMEBUFFER_DATA; typedef struct _HL_FRAMEBUFFER_DATA HL_FRAMEBUFFER_DATA, *PHL_FRAMEBUFFER_DATA;
typedef struct _HL_SCROLL_REGION_DATA HL_SCROLL_REGION_DATA, *PHL_SCROLL_REGION_DATA; typedef struct _HL_SCROLL_REGION_DATA HL_SCROLL_REGION_DATA, *PHL_SCROLL_REGION_DATA;
typedef struct _KAFFINITY_MAP KAFFINITY_MAP, *PKAFFINITY_MAP;
typedef struct _KAPC KAPC, *PKAPC; typedef struct _KAPC KAPC, *PKAPC;
typedef struct _KAPC_STATE KAPC_STATE, *PKAPC_STATE; typedef struct _KAPC_STATE KAPC_STATE, *PKAPC_STATE;
typedef struct _KD_DEBUG_MODE KD_DEBUG_MODE, *PKD_DEBUG_MODE; typedef struct _KD_DEBUG_MODE KD_DEBUG_MODE, *PKD_DEBUG_MODE;