Commit | Line | Data |
---|---|---|
77ef50a5 VN |
1 | #ifndef ASM_X86__SIGCONTEXT32_H |
2 | #define ASM_X86__SIGCONTEXT32_H | |
1da177e4 LT |
3 | |
4 | /* signal context for 32bit programs. */ | |
5 | ||
6 | #define X86_FXSR_MAGIC 0x0000 | |
7 | ||
8 | struct _fpreg { | |
9 | unsigned short significand[4]; | |
10 | unsigned short exponent; | |
11 | }; | |
12 | ||
13 | struct _fpxreg { | |
14 | unsigned short significand[4]; | |
15 | unsigned short exponent; | |
16 | unsigned short padding[3]; | |
17 | }; | |
18 | ||
19 | struct _xmmreg { | |
20 | __u32 element[4]; | |
21 | }; | |
22 | ||
23 | /* FSAVE frame with extensions */ | |
24 | struct _fpstate_ia32 { | |
25 | /* Regular FPU environment */ | |
26 | __u32 cw; | |
27 | __u32 sw; | |
28 | __u32 tag; /* not compatible to 64bit twd */ | |
895b7643 | 29 | __u32 ipoff; |
1da177e4 LT |
30 | __u32 cssel; |
31 | __u32 dataoff; | |
32 | __u32 datasel; | |
33 | struct _fpreg _st[8]; | |
34 | unsigned short status; | |
35 | unsigned short magic; /* 0xffff = regular FPU data only */ | |
36 | ||
37 | /* FXSR FPU environment */ | |
38 | __u32 _fxsr_env[6]; | |
39 | __u32 mxcsr; | |
40 | __u32 reserved; | |
41 | struct _fpxreg _fxsr_st[8]; | |
895b7643 | 42 | struct _xmmreg _xmm[8]; /* It's actually 16 */ |
bdd8caba SS |
43 | __u32 padding[44]; |
44 | union { | |
45 | __u32 padding2[12]; | |
46 | struct _fpx_sw_bytes sw_reserved; | |
47 | }; | |
1da177e4 LT |
48 | }; |
49 | ||
50 | struct sigcontext_ia32 { | |
51 | unsigned short gs, __gsh; | |
52 | unsigned short fs, __fsh; | |
53 | unsigned short es, __esh; | |
54 | unsigned short ds, __dsh; | |
742fa54a PA |
55 | unsigned int di; |
56 | unsigned int si; | |
57 | unsigned int bp; | |
58 | unsigned int sp; | |
59 | unsigned int bx; | |
60 | unsigned int dx; | |
61 | unsigned int cx; | |
62 | unsigned int ax; | |
1da177e4 LT |
63 | unsigned int trapno; |
64 | unsigned int err; | |
742fa54a | 65 | unsigned int ip; |
1da177e4 | 66 | unsigned short cs, __csh; |
742fa54a PA |
67 | unsigned int flags; |
68 | unsigned int sp_at_signal; | |
1da177e4 LT |
69 | unsigned short ss, __ssh; |
70 | unsigned int fpstate; /* really (struct _fpstate_ia32 *) */ | |
71 | unsigned int oldmask; | |
72 | unsigned int cr2; | |
73 | }; | |
74 | ||
77ef50a5 | 75 | #endif /* ASM_X86__SIGCONTEXT32_H */ |