PS_CTX_EXT

A structure holding the current CPU extended register context.

Syntax

typedef struct _PS_CTX_EXT
{
 // Feature control
 uint64_t xcr0;
 // FPU
 uint16_t fpu_ctrl;
 uint16_t fpu_sts;
 uint16_t fpu_tag;
 uint16_t fpu_opcode;
 uint64_t fpu_ip;
 uint64_t fpu_op_offs;
 uint8_t st0[10];
 uint8_t st1[10];
 uint8_t st2[10];
 uint8_t st3[10];
 uint8_t st4[10];
 uint8_t st5[10];
 uint8_t st6[10];
 uint8_t st7[10];
 // MMX
 uint64_t mm0;
 uint64_t mm1;
 uint64_t mm2;
 uint64_t mm3;
 uint64_t mm4;
 uint64_t mm5;
 uint64_t mm6;
 uint64_t mm7;
 // XMM
 uint32_t mxcsr;
 uint32_t mxcsr_mask;
 uint8_t xmm0[16];
 uint8_t xmm1[16];
 uint8_t xmm2[16];
 uint8_t xmm3[16];
 uint8_t xmm4[16];
 uint8_t xmm5[16];
 uint8_t xmm6[16];
 uint8_t xmm7[16];
 uint8_t xmm8[16];
 uint8_t xmm9[16];
 uint8_t xmm10[16];
 uint8_t xmm11[16];
 uint8_t xmm12[16];
 uint8_t xmm13[16];
 uint8_t xmm14[16];
 uint8_t xmm15[16];
 // YMM (16 * 256 bit)
 uint8_t ymm0[32];
 uint8_t ymm1[32];
 uint8_t ymm2[32];
 uint8_t ymm3[32];
 uint8_t ymm4[32];
 uint8_t ymm5[32];
 uint8_t ymm6[32];
 uint8_t ymm7[32];
 uint8_t ymm8[32];
 uint8_t ymm9[32];
 uint8_t ymm10[32];
 uint8_t ymm11[32];
 uint8_t ymm12[32];
 uint8_t ymm13[32];
 uint8_t ymm14[32];
 uint8_t ymm15[32];
 // ZMM (16 * 512 bit)
 uint8_t zmm0[64];
 uint8_t zmm1[64];
 uint8_t zmm2[64];
 uint8_t zmm3[64];
 uint8_t zmm4[64];
 uint8_t zmm5[64];
 uint8_t zmm6[64];
 uint8_t zmm7[64];
 uint8_t zmm8[64];
 uint8_t zmm9[64];
 uint8_t zmm10[64];
 uint8_t zmm11[64];
 uint8_t zmm12[64];
 uint8_t zmm13[64];
 uint8_t zmm14[64];
 uint8_t zmm15[64];
} PS_CTX_EXT, *PPS_CTX_EXT;

Members

Members of this structure represent the extended x86-64 register state.