From cec8a13e4ced8717f606e5ea95290fb18bbcd552 Mon Sep 17 00:00:00 2001 From: belliash Date: Tue, 14 Mar 2023 22:47:32 +0100 Subject: [PATCH] Add context control flags and thread frames for i686 architecture --- sdk/xtdk/i686/ketypes.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index cf9ce8d..d6ed79c 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -116,6 +116,15 @@ #define EFLAGS_ID_MASK 0x00200000L #define EFLAGS_USER_SANITIZE 0x003F4DD7L +/* Context control flags */ +#define CONTEXT_ARCHITECTURE 0x00010000 +#define CONTEXT_CONTROL (CONTEXT_ARCHITECTURE | 0x01) +#define CONTEXT_INTEGER (CONTEXT_ARCHITECTURE | 0x02) +#define CONTEXT_SEGMENTS (CONTEXT_ARCHITECTURE | 0x04) +#define CONTEXT_FLOATING_POINT (CONTEXT_ARCHITECTURE | 0x08) +#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARCHITECTURE | 0x10) +#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_ARCHITECTURE | 0x20) + /* Interrupt request levels definitions */ #define PASSIVE_LEVEL 0 #define LOW_LEVEL 0 @@ -345,6 +354,15 @@ typedef struct _KEXCEPTION_FRAME ULONG PlaceHolder; } KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; +/* Thread start frame definition */ +typedef struct _KSTART_FRAME +{ + PKSYSTEM_ROUTINE SystemRoutine; + PKSTART_ROUTINE StartRoutine; + PVOID StartContext; + BOOLEAN UserMode; +} KSTART_FRAME, *PKSTART_FRAME; + /* Switch frame definition */ typedef struct _KSWITCH_FRAME { @@ -393,6 +411,15 @@ typedef struct _KTRAP_FRAME ULONG V86Gs; } KTRAP_FRAME, *PKTRAP_FRAME; +/* Thread initialization frame definition */ +typedef struct _KTHREAD_INIT_FRAME +{ + KSWITCH_FRAME SwitchFrame; + KSTART_FRAME StartFrame; + KTRAP_FRAME TrapFrame; + FX_SAVE_AREA NpxFrame; +} KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME; + /* Special kernel registers structure definition */ typedef struct _KSPECIAL_REGISTERS {