Extend CONTEXT and PRCB structures with context flags and IPI state fields
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 33s
Builds / ExectOS (amd64, release) (push) Successful in 49s
Builds / ExectOS (i686, debug) (push) Successful in 47s
Builds / ExectOS (i686, release) (push) Successful in 31s

This commit is contained in:
2026-06-07 18:47:48 +02:00
parent 2a413d5717
commit 1df971a71e
2 changed files with 30 additions and 2 deletions

View File

@@ -17,6 +17,17 @@
#include ARCH_HEADER(artypes.h)
/* Processor context flags */
#define CONTEXT_ARCH 0x100000
#define CONTEXT_CONTROL (CONTEXT_ARCH | 0x1L)
#define CONTEXT_INTEGER (CONTEXT_ARCH | 0x2L)
#define CONTEXT_SEGMENTS (CONTEXT_ARCH | 0x4L)
#define CONTEXT_FLOATING_POINT (CONTEXT_ARCH | 0x8L)
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARCH | 0x10L)
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT)
#define CONTEXT_ALL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | \
CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
/* Selector masks */
#define MODE_MASK 0x0001
#define RPL_MASK 0x0003
@@ -241,7 +252,7 @@ typedef struct _CONTEXT
USHORT SegFs;
USHORT SegGs;
USHORT SegSs;
ULONG EFlags;
ULONG Flags;
ULONG64 Dr0;
ULONG64 Dr1;
ULONG64 Dr2;
@@ -571,6 +582,8 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
KPROCESSOR_STATE ProcessorState;
KSPIN_LOCK PrcbLock;
KSPIN_LOCK_QUEUE LockQueue[MaximumLock];
VOLATILE ULONG IpiFrozen;
VOLATILE LONG_PTR RequestSummary;
KDPC_DATA DpcData[2];
PVOID DpcStack;
LONG MaximumDpcQueueDepth;