]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blob - arch/x86/include/uapi/asm/sigcontext32.h
x86/headers: Use ABI types consistently in sigcontext*.h
[mirror_ubuntu-artful-kernel.git] / arch / x86 / include / uapi / asm / sigcontext32.h
1 #ifndef _ASM_X86_SIGCONTEXT32_H
2 #define _ASM_X86_SIGCONTEXT32_H
3
4 /* Signal context definitions for compat 32-bit programs: */
5
6 #include <linux/types.h>
7
8 #include <asm/sigcontext.h>
9
10 /* 10-byte legacy floating point register: */
11 struct _fpreg {
12 __u16 significand[4];
13 __u16 exponent;
14 };
15
16 /* 16-byte floating point register: */
17 struct _fpxreg {
18 __u16 significand[4];
19 __u16 exponent;
20 __u16 padding[3];
21 };
22
23 /* 16-byte XMM vector register: */
24 struct _xmmreg {
25 __u32 element[4];
26 };
27
28 #define X86_FXSR_MAGIC 0x0000
29
30 /* FXSAVE frame: FSAVE frame with extensions */
31 struct _fpstate_ia32 {
32 /* Regular FPU environment: */
33 __u32 cw;
34 __u32 sw;
35 __u32 tag; /* Not compatible with the 64-bit frame */
36 __u32 ipoff;
37 __u32 cssel;
38 __u32 dataoff;
39 __u32 datasel;
40 struct _fpreg _st[8];
41 __u16 status;
42 __u16 magic; /* 0xffff: regular FPU data only */
43 /* 0x0000: FXSR data */
44
45 /* Extended FXSR FPU environment: */
46 __u32 _fxsr_env[6];
47 __u32 mxcsr;
48 __u32 reserved;
49 struct _fpxreg _fxsr_st[8];
50 struct _xmmreg _xmm[8]; /* The first 8 XMM registers */
51 __u32 padding[44]; /* The second 8 XMM registers plus padding */
52 union {
53 __u32 padding2[12];
54 /* Might encode xstate extensions, see asm/sigcontext.h: */
55 struct _fpx_sw_bytes sw_reserved;
56 };
57 };
58
59 /* 32-bit compat sigcontext: */
60 struct sigcontext_ia32 {
61 __u16 gs, __gsh;
62 __u16 fs, __fsh;
63 __u16 es, __esh;
64 __u16 ds, __dsh;
65 __u32 di;
66 __u32 si;
67 __u32 bp;
68 __u32 sp;
69 __u32 bx;
70 __u32 dx;
71 __u32 cx;
72 __u32 ax;
73 __u32 trapno;
74 __u32 err;
75 __u32 ip;
76 __u16 cs, __csh;
77 __u32 flags;
78 __u32 sp_at_signal;
79 __u16 ss, __ssh;
80 __u32 fpstate; /* Pointer to 'struct _fpstate_ia32' */
81 __u32 oldmask;
82 __u32 cr2;
83 };
84
85 #endif /* _ASM_X86_SIGCONTEXT32_H */