]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - arch/x86/include/uapi/asm/sigcontext32.h
x86/headers: Unify register type definitions between 32-bit compat and i386
[karo-tx-linux.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 <asm/sigcontext.h>
7
8 /* FXSAVE frame: FSAVE frame with extensions */
9 struct _fpstate_ia32 {
10         /* Regular FPU environment: */
11         __u32                           cw;
12         __u32                           sw;
13         __u32                           tag;            /* Not compatible with the 64-bit frame */
14         __u32                           ipoff;
15         __u32                           cssel;
16         __u32                           dataoff;
17         __u32                           datasel;
18         struct _fpreg                   _st[8];
19         __u16                           status;
20         __u16                           magic;          /* 0xffff: regular FPU data only */
21                                                         /* 0x0000: FXSR data */
22
23         /* Extended FXSR FPU environment: */
24         __u32                           _fxsr_env[6];
25         __u32                           mxcsr;
26         __u32                           reserved;
27         struct _fpxreg                  _fxsr_st[8];
28         struct _xmmreg                  _xmm[8];        /* The first  8 XMM registers */
29         __u32                           padding[44];    /* The second 8 XMM registers plus padding */
30         union {
31                 __u32                   padding2[12];
32                 /* Might encode xstate extensions, see asm/sigcontext.h: */
33                 struct _fpx_sw_bytes    sw_reserved;
34         };
35 };
36
37 /* 32-bit compat sigcontext: */
38 struct sigcontext_ia32 {
39        __u16                            gs, __gsh;
40        __u16                            fs, __fsh;
41        __u16                            es, __esh;
42        __u16                            ds, __dsh;
43        __u32                            di;
44        __u32                            si;
45        __u32                            bp;
46        __u32                            sp;
47        __u32                            bx;
48        __u32                            dx;
49        __u32                            cx;
50        __u32                            ax;
51        __u32                            trapno;
52        __u32                            err;
53        __u32                            ip;
54        __u16                            cs, __csh;
55        __u32                            flags;
56        __u32                            sp_at_signal;
57        __u16                            ss, __ssh;
58        __u32                            fpstate;        /* Pointer to 'struct _fpstate_ia32' */
59        __u32                            oldmask;
60        __u32                            cr2;
61 };
62
63 #endif /* _ASM_X86_SIGCONTEXT32_H */