Introduce SIMD save area in place of FN/FX and use anonymous union inside FX_SAVE_AREA structure
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
a8fa702b05
commit
3afbc7e419
@ -180,21 +180,8 @@ typedef struct _FLOATING_SAVE_AREA
|
|||||||
ULONG Cr0NpxState;
|
ULONG Cr0NpxState;
|
||||||
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
} FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||||
|
|
||||||
/* Data for FNSAVE/FRSTOR instructions structure definition */
|
|
||||||
typedef struct _FNSAVE_FORMAT
|
|
||||||
{
|
|
||||||
ULONG ControlWord;
|
|
||||||
ULONG StatusWord;
|
|
||||||
ULONG TagWord;
|
|
||||||
ULONG ErrorOffset;
|
|
||||||
ULONG ErrorSelector;
|
|
||||||
ULONG DataOffset;
|
|
||||||
ULONG DataSelector;
|
|
||||||
UCHAR RegisterArea[SIZE_OF_80387_REGISTERS];
|
|
||||||
} FNSAVE_FORMAT, *PFNSAVE_FORMAT;
|
|
||||||
|
|
||||||
/* Data for FXSAVE/FXRSTOR instructions structure definition */
|
/* Data for FXSAVE/FXRSTOR instructions structure definition */
|
||||||
typedef struct _FXSAVE_FORMAT
|
typedef struct _SIMD_SAVE_AREA
|
||||||
{
|
{
|
||||||
USHORT ControlWord;
|
USHORT ControlWord;
|
||||||
USHORT StatusWord;
|
USHORT StatusWord;
|
||||||
@ -210,16 +197,16 @@ typedef struct _FXSAVE_FORMAT
|
|||||||
UCHAR Reserved3[SIZE_OF_FX_REGISTERS];
|
UCHAR Reserved3[SIZE_OF_FX_REGISTERS];
|
||||||
UCHAR Reserved4[224];
|
UCHAR Reserved4[224];
|
||||||
UCHAR Align16Byte[8];
|
UCHAR Align16Byte[8];
|
||||||
} FXSAVE_FORMAT, *PFXSAVE_FORMAT;
|
} SIMD_SAVE_AREA, *PSIMD_SAVE_AREA;
|
||||||
|
|
||||||
/* Floating save area structure definition */
|
/* Floating save area structure definition */
|
||||||
typedef struct _FX_SAVE_AREA
|
typedef struct _FX_SAVE_AREA
|
||||||
{
|
{
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
FNSAVE_FORMAT FnArea;
|
FLOATING_SAVE_AREA FnArea;
|
||||||
FXSAVE_FORMAT FxArea;
|
SIMD_SAVE_AREA FxArea;
|
||||||
} U;
|
};
|
||||||
ULONG NpxSavedCpu;
|
ULONG NpxSavedCpu;
|
||||||
ULONG Cr0NpxState;
|
ULONG Cr0NpxState;
|
||||||
} FX_SAVE_AREA, *PFX_SAVE_AREA;
|
} FX_SAVE_AREA, *PFX_SAVE_AREA;
|
||||||
|
@ -23,9 +23,7 @@ typedef struct _CPU_IDENTIFICATION CPU_IDENTIFICATION, *PCPU_IDENTIFICATION;
|
|||||||
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS;
|
||||||
typedef struct _CPUID_SIGNATURE CPUID_SIGNATURE, *PCPUID_SIGNATURE;
|
typedef struct _CPUID_SIGNATURE CPUID_SIGNATURE, *PCPUID_SIGNATURE;
|
||||||
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
|
||||||
typedef struct _FNSAVE_FORMAT FNSAVE_FORMAT, *PFNSAVE_FORMAT;
|
|
||||||
typedef struct _FX_SAVE_AREA FX_SAVE_AREA, *PFX_SAVE_AREA;
|
typedef struct _FX_SAVE_AREA FX_SAVE_AREA, *PFX_SAVE_AREA;
|
||||||
typedef struct _FXSAVE_FORMAT FXSAVE_FORMAT, *PFXSAVE_FORMAT;
|
|
||||||
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
|
||||||
typedef struct _HARDWARE_PTE_PAE HARDWARE_PTE_PAE, *PHARDWARE_PTE_PAE;
|
typedef struct _HARDWARE_PTE_PAE HARDWARE_PTE_PAE, *PHARDWARE_PTE_PAE;
|
||||||
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
|
typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR;
|
||||||
@ -42,6 +40,7 @@ typedef struct _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME;
|
|||||||
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
|
typedef struct _KTHREAD_INIT_FRAME KTHREAD_INIT_FRAME, *PKTHREAD_INIT_FRAME;
|
||||||
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
|
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
|
||||||
typedef struct _KTSS KTSS, *PKTSS;
|
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;
|
typedef struct _THREAD_ENVIRONMENT_BLOCK THREAD_ENVIRONMENT_BLOCK, *PTHREAD_ENVIRONMENT_BLOCK;
|
||||||
|
|
||||||
#endif /* __XTDK_I686_XTSTRUCT_H */
|
#endif /* __XTDK_I686_XTSTRUCT_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user