Added complete defintion of FX_SAVE_AREA and moved it to fpu.h instead of ps.h.

svn path=/trunk/; revision=11278
This commit is contained in:
Alex Ionescu 2004-10-12 00:33:30 +00:00
parent fb49f8ddd7
commit 9623e3cbe8
2 changed files with 39 additions and 7 deletions

View file

@ -25,4 +25,41 @@ extern ULONG HardwareMathSupport;
VOID
KiCheckFPU(VOID);
typedef struct _FNSAVE_FORMAT {
ULONG ControlWord;
ULONG StatusWord;
ULONG TagWord;
ULONG ErrorOffset;
ULONG ErrorSelector;
ULONG DataOffset;
ULONG DataSelector;
UCHAR RegisterArea[80];
} FNSAVE_FORMAT, *PFNSAVE_FORMAT;
typedef struct _FXSAVE_FORMAT {
USHORT ControlWord;
USHORT StatusWord;
USHORT TagWord;
USHORT ErrorOpcode;
ULONG ErrorOffset;
ULONG ErrorSelector;
ULONG DataOffset;
ULONG DataSelector;
ULONG MXCsr;
ULONG MXCsrMask;
UCHAR RegisterArea[128];
UCHAR Reserved3[128];
UCHAR Reserved4[224];
UCHAR Align16Byte[8];
} FXSAVE_FORMAT, *PFXSAVE_FORMAT;
typedef struct _FX_SAVE_AREA {
union {
FNSAVE_FORMAT FnArea;
FXSAVE_FORMAT FxArea;
} U;
ULONG NpxSavedCpu;
ULONG Cr0NpxState;
} FX_SAVE_AREA, *PFX_SAVE_AREA;
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_I386_FPU_H */

View file

@ -47,6 +47,8 @@
#ifndef __ASM__
#include "fpu.h"
#pragma pack(push,4)
// Fixme: Use correct types?
@ -54,13 +56,6 @@ typedef struct _KPROCESSOR_STATE {
PCONTEXT ContextFrame;
PVOID SpecialRegisters;
} KPROCESSOR_STATE;
// Fixme: Use correct union for Fn/Fx Save Area?
typedef struct _FX_SAVE_AREA {
UCHAR FnFxSaveArea[0x208];
ULONG NpxSavedCpu;
ULONG Cr0NpxState;
} FX_SAVE_AREA, *PFX_SAVE_AREA;
/* ProcessoR Control Block */
typedef struct _KPRCB {