Fixes in i686 version of KepInitializeThreadContext()
All checks were successful
Builds / ExectOS (amd64) (push) Successful in 28s
Builds / ExectOS (i686) (push) Successful in 27s

This commit is contained in:
2023-11-08 16:06:01 +01:00
parent 07998cafd4
commit 641b34b119
3 changed files with 32 additions and 25 deletions

View File

@@ -169,8 +169,12 @@
#define SIZE_OF_80387_REGISTERS 80
#define SIZE_OF_FX_REGISTERS 128
/* NPX state definitions */
#define NPX_STATE_LOADED 0x0
#define NPX_STATE_UNLOADED 0xA
/* Floating point state storing structure */
typedef struct _FLOATING_SAVE_AREA
typedef struct _FN_SAVE_FORMAT
{
ULONG ControlWord;
ULONG StatusWord;
@@ -181,10 +185,10 @@ typedef struct _FLOATING_SAVE_AREA
ULONG DataSelector;
UCHAR RegisterArea[SIZE_OF_80387_REGISTERS];
ULONG Cr0NpxState;
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
} FN_SAVE_FORMAT, *PFN_SAVE_FORMAT;
/* Data for FXSAVE/FXRSTOR instructions structure definition */
typedef struct _SIMD_SAVE_AREA
typedef struct _FX_SAVE_FORMAT
{
USHORT ControlWord;
USHORT StatusWord;
@@ -200,15 +204,15 @@ typedef struct _SIMD_SAVE_AREA
UCHAR Reserved3[SIZE_OF_FX_REGISTERS];
UCHAR Reserved4[224];
UCHAR Align16Byte[8];
} SIMD_SAVE_AREA, *PSIMD_SAVE_AREA;
} FX_SAVE_FORMAT, *PFX_SAVE_FORMAT;
/* Floating save area structure definition */
typedef struct _FX_SAVE_AREA
{
union
{
FLOATING_SAVE_AREA FnArea;
SIMD_SAVE_AREA FxArea;
FN_SAVE_FORMAT FnArea;
FX_SAVE_FORMAT FxArea;
};
ULONG NpxSavedCpu;
ULONG Cr0NpxState;
@@ -224,7 +228,7 @@ typedef struct _CONTEXT
ULONG Dr3;
ULONG Dr6;
ULONG Dr7;
FLOATING_SAVE_AREA FloatSave;
FN_SAVE_FORMAT FloatSave;
ULONG SegGs;
ULONG SegFs;
ULONG SegEs;
@@ -357,7 +361,7 @@ typedef struct _KSTART_FRAME
typedef struct _KSWITCH_FRAME
{
PVOID ExceptionList;
PVOID Reserved;
BOOLEAN ApcBypassDisabled;
PVOID Return;
} KSWITCH_FRAME, *PKSWITCH_FRAME;
@@ -366,8 +370,8 @@ typedef struct _KTRAP_FRAME
{
ULONG DbgEbp;
ULONG DbgEip;
ULONG DbgArgMark;
ULONG DbgArgPointer;
ULONG DbgMark;
ULONG DbgPointer;
ULONG TempSegCs;
ULONG TempEsp;
ULONG Dr0;

View File

@@ -22,8 +22,9 @@ typedef struct _CONTEXT CONTEXT, *PCONTEXT;
typedef struct _CPU_IDENTIFICATION CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
typedef struct _CPUID_SIGNATURE CPUID_SIGNATURE, *PCPUID_SIGNATURE;
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
typedef struct _FN_SAVE_FORMAT FN_SAVE_FORMAT, *PFN_SAVE_FORMAT;
typedef struct _FX_SAVE_AREA FX_SAVE_AREA, *PFX_SAVE_AREA;
typedef struct _FX_SAVE_FORMAT FX_SAVE_FORMAT, *PFX_SAVE_FORMAT;
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
typedef struct _HARDWARE_PTE_PAE HARDWARE_PTE_PAE, *PHARDWARE_PTE_PAE;
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
@@ -40,7 +41,6 @@ typedef struct _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME;
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
typedef struct _KTSS KTSS, *PKTSS;
typedef struct _SIMD_SAVE_AREA SIMD_SAVE_AREA, *PSIMD_SAVE_AREA;
typedef struct _THREAD_ENVIRONMENT_BLOCK THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK;
#endif /* __XTDK_I686_XTSTRUCT_H */