xref: /aosp_15_r20/bionic/libc/kernel/uapi/asm-x86/asm/sigcontext.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_ASM_X86_SIGCONTEXT_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_ASM_X86_SIGCONTEXT_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/compiler.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
11*8d67ca89SAndroid Build Coastguard Worker #define FP_XSTATE_MAGIC1 0x46505853U
12*8d67ca89SAndroid Build Coastguard Worker #define FP_XSTATE_MAGIC2 0x46505845U
13*8d67ca89SAndroid Build Coastguard Worker #define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2)
14*8d67ca89SAndroid Build Coastguard Worker struct _fpx_sw_bytes {
15*8d67ca89SAndroid Build Coastguard Worker   __u32 magic1;
16*8d67ca89SAndroid Build Coastguard Worker   __u32 extended_size;
17*8d67ca89SAndroid Build Coastguard Worker   __u64 xfeatures;
18*8d67ca89SAndroid Build Coastguard Worker   __u32 xstate_size;
19*8d67ca89SAndroid Build Coastguard Worker   __u32 padding[7];
20*8d67ca89SAndroid Build Coastguard Worker };
21*8d67ca89SAndroid Build Coastguard Worker struct _fpreg {
22*8d67ca89SAndroid Build Coastguard Worker   __u16 significand[4];
23*8d67ca89SAndroid Build Coastguard Worker   __u16 exponent;
24*8d67ca89SAndroid Build Coastguard Worker };
25*8d67ca89SAndroid Build Coastguard Worker struct _fpxreg {
26*8d67ca89SAndroid Build Coastguard Worker   __u16 significand[4];
27*8d67ca89SAndroid Build Coastguard Worker   __u16 exponent;
28*8d67ca89SAndroid Build Coastguard Worker   __u16 padding[3];
29*8d67ca89SAndroid Build Coastguard Worker };
30*8d67ca89SAndroid Build Coastguard Worker struct _xmmreg {
31*8d67ca89SAndroid Build Coastguard Worker   __u32 element[4];
32*8d67ca89SAndroid Build Coastguard Worker };
33*8d67ca89SAndroid Build Coastguard Worker #define X86_FXSR_MAGIC 0x0000
34*8d67ca89SAndroid Build Coastguard Worker struct _fpstate_32 {
35*8d67ca89SAndroid Build Coastguard Worker   __u32 cw;
36*8d67ca89SAndroid Build Coastguard Worker   __u32 sw;
37*8d67ca89SAndroid Build Coastguard Worker   __u32 tag;
38*8d67ca89SAndroid Build Coastguard Worker   __u32 ipoff;
39*8d67ca89SAndroid Build Coastguard Worker   __u32 cssel;
40*8d67ca89SAndroid Build Coastguard Worker   __u32 dataoff;
41*8d67ca89SAndroid Build Coastguard Worker   __u32 datasel;
42*8d67ca89SAndroid Build Coastguard Worker   struct _fpreg _st[8];
43*8d67ca89SAndroid Build Coastguard Worker   __u16 status;
44*8d67ca89SAndroid Build Coastguard Worker   __u16 magic;
45*8d67ca89SAndroid Build Coastguard Worker   __u32 _fxsr_env[6];
46*8d67ca89SAndroid Build Coastguard Worker   __u32 mxcsr;
47*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved;
48*8d67ca89SAndroid Build Coastguard Worker   struct _fpxreg _fxsr_st[8];
49*8d67ca89SAndroid Build Coastguard Worker   struct _xmmreg _xmm[8];
50*8d67ca89SAndroid Build Coastguard Worker   union {
51*8d67ca89SAndroid Build Coastguard Worker     __u32 padding1[44];
52*8d67ca89SAndroid Build Coastguard Worker     __u32 padding[44];
53*8d67ca89SAndroid Build Coastguard Worker   };
54*8d67ca89SAndroid Build Coastguard Worker   union {
55*8d67ca89SAndroid Build Coastguard Worker     __u32 padding2[12];
56*8d67ca89SAndroid Build Coastguard Worker     struct _fpx_sw_bytes sw_reserved;
57*8d67ca89SAndroid Build Coastguard Worker   };
58*8d67ca89SAndroid Build Coastguard Worker };
59*8d67ca89SAndroid Build Coastguard Worker struct _fpstate_64 {
60*8d67ca89SAndroid Build Coastguard Worker   __u16 cwd;
61*8d67ca89SAndroid Build Coastguard Worker   __u16 swd;
62*8d67ca89SAndroid Build Coastguard Worker   __u16 twd;
63*8d67ca89SAndroid Build Coastguard Worker   __u16 fop;
64*8d67ca89SAndroid Build Coastguard Worker   __u64 rip;
65*8d67ca89SAndroid Build Coastguard Worker   __u64 rdp;
66*8d67ca89SAndroid Build Coastguard Worker   __u32 mxcsr;
67*8d67ca89SAndroid Build Coastguard Worker   __u32 mxcsr_mask;
68*8d67ca89SAndroid Build Coastguard Worker   __u32 st_space[32];
69*8d67ca89SAndroid Build Coastguard Worker   __u32 xmm_space[64];
70*8d67ca89SAndroid Build Coastguard Worker   __u32 reserved2[12];
71*8d67ca89SAndroid Build Coastguard Worker   union {
72*8d67ca89SAndroid Build Coastguard Worker     __u32 reserved3[12];
73*8d67ca89SAndroid Build Coastguard Worker     struct _fpx_sw_bytes sw_reserved;
74*8d67ca89SAndroid Build Coastguard Worker   };
75*8d67ca89SAndroid Build Coastguard Worker };
76*8d67ca89SAndroid Build Coastguard Worker #ifdef __i386__
77*8d67ca89SAndroid Build Coastguard Worker #define _fpstate _fpstate_32
78*8d67ca89SAndroid Build Coastguard Worker #else
79*8d67ca89SAndroid Build Coastguard Worker #define _fpstate _fpstate_64
80*8d67ca89SAndroid Build Coastguard Worker #endif
81*8d67ca89SAndroid Build Coastguard Worker struct _header {
82*8d67ca89SAndroid Build Coastguard Worker   __u64 xfeatures;
83*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved1[2];
84*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved2[5];
85*8d67ca89SAndroid Build Coastguard Worker };
86*8d67ca89SAndroid Build Coastguard Worker struct _ymmh_state {
87*8d67ca89SAndroid Build Coastguard Worker   __u32 ymmh_space[64];
88*8d67ca89SAndroid Build Coastguard Worker };
89*8d67ca89SAndroid Build Coastguard Worker struct _xstate {
90*8d67ca89SAndroid Build Coastguard Worker   struct _fpstate fpstate;
91*8d67ca89SAndroid Build Coastguard Worker   struct _header xstate_hdr;
92*8d67ca89SAndroid Build Coastguard Worker   struct _ymmh_state ymmh;
93*8d67ca89SAndroid Build Coastguard Worker };
94*8d67ca89SAndroid Build Coastguard Worker struct sigcontext_32 {
95*8d67ca89SAndroid Build Coastguard Worker   __u16 gs, __gsh;
96*8d67ca89SAndroid Build Coastguard Worker   __u16 fs, __fsh;
97*8d67ca89SAndroid Build Coastguard Worker   __u16 es, __esh;
98*8d67ca89SAndroid Build Coastguard Worker   __u16 ds, __dsh;
99*8d67ca89SAndroid Build Coastguard Worker   __u32 di;
100*8d67ca89SAndroid Build Coastguard Worker   __u32 si;
101*8d67ca89SAndroid Build Coastguard Worker   __u32 bp;
102*8d67ca89SAndroid Build Coastguard Worker   __u32 sp;
103*8d67ca89SAndroid Build Coastguard Worker   __u32 bx;
104*8d67ca89SAndroid Build Coastguard Worker   __u32 dx;
105*8d67ca89SAndroid Build Coastguard Worker   __u32 cx;
106*8d67ca89SAndroid Build Coastguard Worker   __u32 ax;
107*8d67ca89SAndroid Build Coastguard Worker   __u32 trapno;
108*8d67ca89SAndroid Build Coastguard Worker   __u32 err;
109*8d67ca89SAndroid Build Coastguard Worker   __u32 ip;
110*8d67ca89SAndroid Build Coastguard Worker   __u16 cs, __csh;
111*8d67ca89SAndroid Build Coastguard Worker   __u32 flags;
112*8d67ca89SAndroid Build Coastguard Worker   __u32 sp_at_signal;
113*8d67ca89SAndroid Build Coastguard Worker   __u16 ss, __ssh;
114*8d67ca89SAndroid Build Coastguard Worker   __u32 fpstate;
115*8d67ca89SAndroid Build Coastguard Worker   __u32 oldmask;
116*8d67ca89SAndroid Build Coastguard Worker   __u32 cr2;
117*8d67ca89SAndroid Build Coastguard Worker };
118*8d67ca89SAndroid Build Coastguard Worker struct sigcontext_64 {
119*8d67ca89SAndroid Build Coastguard Worker   __u64 r8;
120*8d67ca89SAndroid Build Coastguard Worker   __u64 r9;
121*8d67ca89SAndroid Build Coastguard Worker   __u64 r10;
122*8d67ca89SAndroid Build Coastguard Worker   __u64 r11;
123*8d67ca89SAndroid Build Coastguard Worker   __u64 r12;
124*8d67ca89SAndroid Build Coastguard Worker   __u64 r13;
125*8d67ca89SAndroid Build Coastguard Worker   __u64 r14;
126*8d67ca89SAndroid Build Coastguard Worker   __u64 r15;
127*8d67ca89SAndroid Build Coastguard Worker   __u64 di;
128*8d67ca89SAndroid Build Coastguard Worker   __u64 si;
129*8d67ca89SAndroid Build Coastguard Worker   __u64 bp;
130*8d67ca89SAndroid Build Coastguard Worker   __u64 bx;
131*8d67ca89SAndroid Build Coastguard Worker   __u64 dx;
132*8d67ca89SAndroid Build Coastguard Worker   __u64 ax;
133*8d67ca89SAndroid Build Coastguard Worker   __u64 cx;
134*8d67ca89SAndroid Build Coastguard Worker   __u64 sp;
135*8d67ca89SAndroid Build Coastguard Worker   __u64 ip;
136*8d67ca89SAndroid Build Coastguard Worker   __u64 flags;
137*8d67ca89SAndroid Build Coastguard Worker   __u16 cs;
138*8d67ca89SAndroid Build Coastguard Worker   __u16 gs;
139*8d67ca89SAndroid Build Coastguard Worker   __u16 fs;
140*8d67ca89SAndroid Build Coastguard Worker   __u16 ss;
141*8d67ca89SAndroid Build Coastguard Worker   __u64 err;
142*8d67ca89SAndroid Build Coastguard Worker   __u64 trapno;
143*8d67ca89SAndroid Build Coastguard Worker   __u64 oldmask;
144*8d67ca89SAndroid Build Coastguard Worker   __u64 cr2;
145*8d67ca89SAndroid Build Coastguard Worker   __u64 fpstate;
146*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved1[8];
147*8d67ca89SAndroid Build Coastguard Worker };
148*8d67ca89SAndroid Build Coastguard Worker #define _fpstate_ia32 _fpstate_32
149*8d67ca89SAndroid Build Coastguard Worker #define sigcontext_ia32 sigcontext_32
150*8d67ca89SAndroid Build Coastguard Worker #ifdef __i386__
151*8d67ca89SAndroid Build Coastguard Worker struct sigcontext {
152*8d67ca89SAndroid Build Coastguard Worker   __u16 gs, __gsh;
153*8d67ca89SAndroid Build Coastguard Worker   __u16 fs, __fsh;
154*8d67ca89SAndroid Build Coastguard Worker   __u16 es, __esh;
155*8d67ca89SAndroid Build Coastguard Worker   __u16 ds, __dsh;
156*8d67ca89SAndroid Build Coastguard Worker   __u32 edi;
157*8d67ca89SAndroid Build Coastguard Worker   __u32 esi;
158*8d67ca89SAndroid Build Coastguard Worker   __u32 ebp;
159*8d67ca89SAndroid Build Coastguard Worker   __u32 esp;
160*8d67ca89SAndroid Build Coastguard Worker   __u32 ebx;
161*8d67ca89SAndroid Build Coastguard Worker   __u32 edx;
162*8d67ca89SAndroid Build Coastguard Worker   __u32 ecx;
163*8d67ca89SAndroid Build Coastguard Worker   __u32 eax;
164*8d67ca89SAndroid Build Coastguard Worker   __u32 trapno;
165*8d67ca89SAndroid Build Coastguard Worker   __u32 err;
166*8d67ca89SAndroid Build Coastguard Worker   __u32 eip;
167*8d67ca89SAndroid Build Coastguard Worker   __u16 cs, __csh;
168*8d67ca89SAndroid Build Coastguard Worker   __u32 eflags;
169*8d67ca89SAndroid Build Coastguard Worker   __u32 esp_at_signal;
170*8d67ca89SAndroid Build Coastguard Worker   __u16 ss, __ssh;
171*8d67ca89SAndroid Build Coastguard Worker   struct _fpstate  * fpstate;
172*8d67ca89SAndroid Build Coastguard Worker   __u32 oldmask;
173*8d67ca89SAndroid Build Coastguard Worker   __u32 cr2;
174*8d67ca89SAndroid Build Coastguard Worker };
175*8d67ca89SAndroid Build Coastguard Worker #else
176*8d67ca89SAndroid Build Coastguard Worker struct sigcontext {
177*8d67ca89SAndroid Build Coastguard Worker   __u64 r8;
178*8d67ca89SAndroid Build Coastguard Worker   __u64 r9;
179*8d67ca89SAndroid Build Coastguard Worker   __u64 r10;
180*8d67ca89SAndroid Build Coastguard Worker   __u64 r11;
181*8d67ca89SAndroid Build Coastguard Worker   __u64 r12;
182*8d67ca89SAndroid Build Coastguard Worker   __u64 r13;
183*8d67ca89SAndroid Build Coastguard Worker   __u64 r14;
184*8d67ca89SAndroid Build Coastguard Worker   __u64 r15;
185*8d67ca89SAndroid Build Coastguard Worker   __u64 rdi;
186*8d67ca89SAndroid Build Coastguard Worker   __u64 rsi;
187*8d67ca89SAndroid Build Coastguard Worker   __u64 rbp;
188*8d67ca89SAndroid Build Coastguard Worker   __u64 rbx;
189*8d67ca89SAndroid Build Coastguard Worker   __u64 rdx;
190*8d67ca89SAndroid Build Coastguard Worker   __u64 rax;
191*8d67ca89SAndroid Build Coastguard Worker   __u64 rcx;
192*8d67ca89SAndroid Build Coastguard Worker   __u64 rsp;
193*8d67ca89SAndroid Build Coastguard Worker   __u64 rip;
194*8d67ca89SAndroid Build Coastguard Worker   __u64 eflags;
195*8d67ca89SAndroid Build Coastguard Worker   __u16 cs;
196*8d67ca89SAndroid Build Coastguard Worker   __u16 gs;
197*8d67ca89SAndroid Build Coastguard Worker   __u16 fs;
198*8d67ca89SAndroid Build Coastguard Worker   union {
199*8d67ca89SAndroid Build Coastguard Worker     __u16 ss;
200*8d67ca89SAndroid Build Coastguard Worker     __u16 __pad0;
201*8d67ca89SAndroid Build Coastguard Worker   };
202*8d67ca89SAndroid Build Coastguard Worker   __u64 err;
203*8d67ca89SAndroid Build Coastguard Worker   __u64 trapno;
204*8d67ca89SAndroid Build Coastguard Worker   __u64 oldmask;
205*8d67ca89SAndroid Build Coastguard Worker   __u64 cr2;
206*8d67ca89SAndroid Build Coastguard Worker   struct _fpstate  * fpstate;
207*8d67ca89SAndroid Build Coastguard Worker #ifdef __ILP32__
208*8d67ca89SAndroid Build Coastguard Worker   __u32 __fpstate_pad;
209*8d67ca89SAndroid Build Coastguard Worker #endif
210*8d67ca89SAndroid Build Coastguard Worker   __u64 reserved1[8];
211*8d67ca89SAndroid Build Coastguard Worker };
212*8d67ca89SAndroid Build Coastguard Worker #endif
213*8d67ca89SAndroid Build Coastguard Worker #endif
214