1 #ifndef _ASMi386_SIGCONTEXT_H
2 #define _ASMi386_SIGCONTEXT_H
5 * As documented in the iBCS2 standard..
7 * The first part of "struct _fpstate" is just the normal i387
8 * hardware setup, the extra "status" word is used to save the
9 * coprocessor status word before entering the handler.
11 * Pentium III FXSR, SSE support
12 * Gareth Hughes <gareth@valinux.com>, May 2000
14 * The FPU state data structure has had to grow to accomodate the
15 * extended FPU state required by the Streaming SIMD Extensions.
16 * There is no documented standard to accomplish this at the moment.
19 unsigned short significand[4];
20 unsigned short exponent;
24 unsigned short significand[4];
25 unsigned short exponent;
26 unsigned short padding[3];
30 unsigned long element[4];
34 /* Regular FPU environment */
40 unsigned long dataoff;
41 unsigned long datasel;
43 unsigned short status;
44 unsigned short magic; /* 0xffff = regular FPU data only */
46 /* FXSR FPU environment */
47 unsigned long _fxsr_env[6]; /* FXSR FPU env is ignored */
49 unsigned long reserved;
50 struct _fpxreg _fxsr_st[8]; /* FXSR FPU reg data is ignored */
51 struct _xmmreg _xmm[8];
52 unsigned long padding[56];
55 #define X86_FXSR_MAGIC 0x0000
58 unsigned short gs, __gsh;
59 unsigned short fs, __fsh;
60 unsigned short es, __esh;
61 unsigned short ds, __dsh;
73 unsigned short cs, __csh;
75 unsigned long esp_at_signal;
76 unsigned short ss, __ssh;
77 struct _fpstate * fpstate;
78 unsigned long oldmask;