From 70795ae57a527bd99488127be79c131c2525b035 Mon Sep 17 00:00:00 2001 From: belliash Date: Sun, 5 Mar 2023 18:11:57 +0100 Subject: [PATCH] Add EFLAGS and THREAD_ENVIRONMENT_BLOCK for x86 --- sdk/xtdk/i686/ketypes.h | 31 ++++++++++++++++++++++++++++++- sdk/xtdk/i686/xtstruct.h | 1 + 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index 3c93ed3..cf9ce8d 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -95,6 +95,27 @@ #define I686_INTERRUPT_GATE 0xE #define I686_TRAP_GATE 0xF +/* EFlags bits definitions */ +#define EFLAGS_CF_MASK 0x00000001L +#define EFLAGS_PF_MASK 0x00000004L +#define EFLAGS_AF_MASK 0x00000010L +#define EFLAGS_ZF_MASK 0x00000040L +#define EFLAGS_SF_MASK 0x00000080L +#define EFLAGS_TF 0x00000100L +#define EFLAGS_INTERRUPT_MASK 0x00000200L +#define EFLAGS_DF_MASK 0x00000400L +#define EFLAGS_OF_MASK 0x00000800L +#define EFLAGS_IOPL_MASK 0x00003000L +#define EFLAGS_NT 0x00004000L +#define EFLAGS_SIGN_MASK 0x00008000L +#define EFLAGS_RF 0x00010000L +#define EFLAGS_V86_MASK 0x00020000L +#define EFLAGS_ALIGN_CHECK 0x00040000L +#define EFLAGS_VIF 0x00080000L +#define EFLAGS_VIP 0x00100000L +#define EFLAGS_ID_MASK 0x00200000L +#define EFLAGS_USER_SANITIZE 0x003F4DD7L + /* Interrupt request levels definitions */ #define PASSIVE_LEVEL 0 #define LOW_LEVEL 0 @@ -328,7 +349,7 @@ typedef struct _KEXCEPTION_FRAME typedef struct _KSWITCH_FRAME { PVOID ExceptionList; - BOOLEAN ApcBypass; + PVOID Reserved; PVOID ReturnAddress; } KSWITCH_FRAME, *PKSWITCH_FRAME; @@ -412,6 +433,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK ULONG_PTR MultiThreadProcessorSet; KDPC_DATA DpcData[2]; PVOID DpcStack; + VOLATILE BOOLEAN DpcRoutineActive; VOLATILE ULONG_PTR TimerRequest; SINGLE_LIST_ENTRY DeferredReadyListHead; PROCESSOR_POWER_STATE PowerState; @@ -428,6 +450,13 @@ typedef struct _KPROCESSOR_BLOCK PKGDTENTRY GdtBase; PKTSS TssBase; KPROCESSOR_CONTROL_BLOCK Prcb; + ULONG ContextSwitches; } KPROCESSOR_BLOCK, *PKPROCESSOR_BLOCK; +/* Thread Environment Block (TEB) structure definition */ +typedef struct _THREAD_ENVIRONMENT_BLOCK +{ + THREAD_INFORMATION_BLOCK InformationBlock; +} THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK; + #endif /* __XTDK_I686_KETYPES_H */ diff --git a/sdk/xtdk/i686/xtstruct.h b/sdk/xtdk/i686/xtstruct.h index 1ba3fa9..69d6461 100644 --- a/sdk/xtdk/i686/xtstruct.h +++ b/sdk/xtdk/i686/xtstruct.h @@ -40,5 +40,6 @@ typedef struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS, *PKSPECIAL_REGISTERS; typedef struct _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME; typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME; typedef struct _KTSS KTSS, *PKTSS; +typedef struct _THREAD_ENVIRONMENT_BLOCK THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK; #endif /* __XTDK_I686_XTSTRUCT_H */