10437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef _UAPI_ASM_X86_SIGCONTEXT_H 20437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _UAPI_ASM_X86_SIGCONTEXT_H 30437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 40437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <linux/compiler.h> 50437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <linux/types.h> 60437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 70437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FP_XSTATE_MAGIC1 0x46505853U 80437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FP_XSTATE_MAGIC2 0x46505845U 90437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2) 100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* 120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * bytes 464..511 in the current 512byte layout of fxsave/fxrstor frame 130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * are reserved for SW usage. On cpu's supporting xsave/xrstor, these bytes 140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * are used to extended the fpstate pointer in the sigcontext, which now 150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * includes the extended state information along with fpstate information. 160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * 170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * Presence of FP_XSTATE_MAGIC1 at the beginning of this SW reserved 180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * area and FP_XSTATE_MAGIC2 at the end of memory layout 190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * (extended_size - FP_XSTATE_MAGIC2_SIZE) indicates the presence of the 200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * extended state information in the memory layout pointed by the fpstate 210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * pointer in sigcontext. 220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _fpx_sw_bytes { 240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 magic1; /* FP_XSTATE_MAGIC1 */ 250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 extended_size; /* total size of the layout referred by 260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * fpstate pointer in the sigcontext. 270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 xstate_bv; 290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris /* feature bit mask (including fp/sse/extended 300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * state) that is present in the memory 310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * layout. 320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 xstate_size; /* actual xsave state size, based on the 340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * features saved in the layout. 350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * 'extended_size' will be greater than 360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * 'xstate_size'. 370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 padding[7]; /* for future use. */ 390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifdef __i386__ 420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* 430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * As documented in the iBCS2 standard.. 440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * 450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * The first part of "struct _fpstate" is just the normal i387 460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * hardware setup, the extra "status" word is used to save the 470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * coprocessor status word before entering the handler. 480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * 490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * Pentium III FXSR, SSE support 500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * Gareth Hughes <gareth@valinux.com>, May 2000 510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * 520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * The FPU state data structure has had to grow to accommodate the 530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * extended FPU state required by the Streaming SIMD Extensions. 540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * There is no documented standard to accomplish this at the moment. 550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _fpreg { 570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short significand[4]; 580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short exponent; 590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _fpxreg { 620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short significand[4]; 630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short exponent; 640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short padding[3]; 650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _xmmreg { 680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long element[4]; 690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _fpstate { 720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris /* Regular FPU environment */ 730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long cw; 740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long sw; 750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long tag; 760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long ipoff; 770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long cssel; 780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long dataoff; 790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long datasel; 800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpreg _st[8]; 810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short status; 820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short magic; /* 0xffff = regular FPU data only */ 830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris /* FXSR FPU environment */ 850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */ 860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long mxcsr; 870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long reserved; 880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */ 890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _xmmreg _xmm[8]; 900437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long padding1[44]; 910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris union { 930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long padding2[12]; 940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpx_sw_bytes sw_reserved; /* represents the extended 950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * state info */ 960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris }; 970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define X86_FXSR_MAGIC 0x0000 1000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 1010437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef __KERNEL__ 1020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* 1030437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * User-space might still rely on the old definition: 1040437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 1050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct sigcontext { 1060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short gs, __gsh; 1070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short fs, __fsh; 1080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short es, __esh; 1090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short ds, __dsh; 1100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long edi; 1110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long esi; 1120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long ebp; 1130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long esp; 1140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long ebx; 1150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long edx; 1160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long ecx; 1170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long eax; 1180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long trapno; 1190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long err; 1200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long eip; 1210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short cs, __csh; 1220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long eflags; 1230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long esp_at_signal; 1240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned short ss, __ssh; 1250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpstate __user *fpstate; 1260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long oldmask; 1270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris unsigned long cr2; 1280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 1290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* !__KERNEL__ */ 1300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 1310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#else /* __i386__ */ 1320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 1330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* FXSAVE frame */ 1340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Note: reserved1/2 may someday contain valuable data. Always save/restore 1350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris them when you change signal frames. */ 1360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _fpstate { 1370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 cwd; 1380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 swd; 1390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 twd; /* Note this is not the same as the 1400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 32bit/x87/FSAVE twd */ 1410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 fop; 1420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rip; 1430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rdp; 1440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 mxcsr; 1450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 mxcsr_mask; 1460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 st_space[32]; /* 8*16 bytes for each FP-reg */ 1470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg */ 1480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 reserved2[12]; 1490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris union { 1500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 reserved3[12]; 1510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpx_sw_bytes sw_reserved; /* represents the extended 1520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * state information */ 1530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris }; 1540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 1550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 1560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef __KERNEL__ 1570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* 1580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * User-space might still rely on the old definition: 1590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 1600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct sigcontext { 1610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r8; 1620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r9; 1630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r10; 1640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r11; 1650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r12; 1660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r13; 1670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r14; 1680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 r15; 1690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rdi; 1700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rsi; 1710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rbp; 1720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rbx; 1730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rdx; 1740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rax; 1750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rcx; 1760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rsp; 1770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 rip; 1780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 eflags; /* RFLAGS */ 1790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 cs; 1800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 gs; 1810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 fs; 1820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u16 __pad0; 1830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 err; 1840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 trapno; 1850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 oldmask; 1860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 cr2; 1870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpstate __user *fpstate; /* zero when no FPU context */ 1880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifdef __ILP32__ 1890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 __fpstate_pad; 1900437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif 1910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 reserved1[8]; 1920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 1930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* !__KERNEL__ */ 1940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 1950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* !__i386__ */ 1960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 1970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _xsave_hdr { 1980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 xstate_bv; 1990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 reserved1[2]; 2000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u64 reserved2[5]; 2010437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 2020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 2030437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _ymmh_state { 2040437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris /* 16 * 16 bytes for each YMMH-reg */ 2050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris __u32 ymmh_space[64]; 2060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 2070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 2080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* 2090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * Extended state pointed by the fpstate pointer in the sigcontext. 2100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * In addition to the fpstate, information encoded in the xstate_hdr 2110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * indicates the presence of other extended state information 2120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * supported by the processor and OS. 2130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */ 2140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct _xstate { 2150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _fpstate fpstate; 2160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _xsave_hdr xstate_hdr; 2170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris struct _ymmh_state ymmh; 2180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris /* new processor state extensions go here */ 2190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris}; 2200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 2210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* _UAPI_ASM_X86_SIGCONTEXT_H */ 222