1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 *** To edit the content of this header, modify the corresponding 11 *** source file (e.g. under external/kernel-headers/original/) then 12 *** run bionic/libc/kernel/tools/update_all.py 13 *** 14 *** Any manual change here will be lost the next time this script will 15 *** be run. You've been warned! 16 *** 17 **************************************************************************** 18 ****************************************************************************/ 19 #ifndef _UAPI_ASM_X86_SIGCONTEXT_H 20 #define _UAPI_ASM_X86_SIGCONTEXT_H 21 #include <linux/compiler.h> 22 #include <linux/types.h> 23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 24 #define FP_XSTATE_MAGIC1 0x46505853U 25 #define FP_XSTATE_MAGIC2 0x46505845U 26 #define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2) 27 struct _fpx_sw_bytes { 28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 29 __u32 magic1; 30 __u32 extended_size; 31 __u64 xfeatures; 32 __u32 xstate_size; 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 __u32 padding[7]; 35 }; 36 struct _fpreg { 37 __u16 significand[4]; 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 __u16 exponent; 40 }; 41 struct _fpxreg { 42 __u16 significand[4]; 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 __u16 exponent; 45 __u16 padding[3]; 46 }; 47 struct _xmmreg { 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 __u32 element[4]; 50 }; 51 #define X86_FXSR_MAGIC 0x0000 52 struct _fpstate_32 { 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 __u32 cw; 55 __u32 sw; 56 __u32 tag; 57 __u32 ipoff; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 __u32 cssel; 60 __u32 dataoff; 61 __u32 datasel; 62 struct _fpreg _st[8]; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 __u16 status; 65 __u16 magic; 66 __u32 _fxsr_env[6]; 67 __u32 mxcsr; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 __u32 reserved; 70 struct _fpxreg _fxsr_st[8]; 71 struct _xmmreg _xmm[8]; 72 union { 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 __u32 padding1[44]; 75 __u32 padding[44]; 76 }; 77 union { 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 __u32 padding2[12]; 80 struct _fpx_sw_bytes sw_reserved; 81 }; 82 }; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 struct _fpstate_64 { 85 __u16 cwd; 86 __u16 swd; 87 __u16 twd; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 __u16 fop; 90 __u64 rip; 91 __u64 rdp; 92 __u32 mxcsr; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 __u32 mxcsr_mask; 95 __u32 st_space[32]; 96 __u32 xmm_space[64]; 97 __u32 reserved2[12]; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 union { 100 __u32 reserved3[12]; 101 struct _fpx_sw_bytes sw_reserved; 102 }; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 }; 105 #ifdef __i386__ 106 #define _fpstate _fpstate_32 107 #else 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 #define _fpstate _fpstate_64 110 #endif 111 struct _header { 112 __u64 xfeatures; 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 __u64 reserved1[2]; 115 __u64 reserved2[5]; 116 }; 117 struct _ymmh_state { 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 __u32 ymmh_space[64]; 120 }; 121 struct _xstate { 122 struct _fpstate fpstate; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 struct _header xstate_hdr; 125 struct _ymmh_state ymmh; 126 }; 127 struct sigcontext_32 { 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 __u16 gs, __gsh; 130 __u16 fs, __fsh; 131 __u16 es, __esh; 132 __u16 ds, __dsh; 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 __u32 di; 135 __u32 si; 136 __u32 bp; 137 __u32 sp; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 __u32 bx; 140 __u32 dx; 141 __u32 cx; 142 __u32 ax; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u32 trapno; 145 __u32 err; 146 __u32 ip; 147 __u16 cs, __csh; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u32 flags; 150 __u32 sp_at_signal; 151 __u16 ss, __ssh; 152 __u32 fpstate; 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u32 oldmask; 155 __u32 cr2; 156 }; 157 struct sigcontext_64 { 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 __u64 r8; 160 __u64 r9; 161 __u64 r10; 162 __u64 r11; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 __u64 r12; 165 __u64 r13; 166 __u64 r14; 167 __u64 r15; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 __u64 di; 170 __u64 si; 171 __u64 bp; 172 __u64 bx; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 __u64 dx; 175 __u64 ax; 176 __u64 cx; 177 __u64 sp; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __u64 ip; 180 __u64 flags; 181 __u16 cs; 182 __u16 gs; 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 __u16 fs; 185 __u16 __pad0; 186 __u64 err; 187 __u64 trapno; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 __u64 oldmask; 190 __u64 cr2; 191 __u64 fpstate; 192 __u64 reserved1[8]; 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194 }; 195 #define _fpstate_ia32 _fpstate_32 196 #define sigcontext_ia32 sigcontext_32 197 #ifdef __i386__ 198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 199 struct sigcontext { 200 __u16 gs, __gsh; 201 __u16 fs, __fsh; 202 __u16 es, __esh; 203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 204 __u16 ds, __dsh; 205 __u32 edi; 206 __u32 esi; 207 __u32 ebp; 208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 209 __u32 esp; 210 __u32 ebx; 211 __u32 edx; 212 __u32 ecx; 213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 214 __u32 eax; 215 __u32 trapno; 216 __u32 err; 217 __u32 eip; 218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 219 __u16 cs, __csh; 220 __u32 eflags; 221 __u32 esp_at_signal; 222 __u16 ss, __ssh; 223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 224 struct _fpstate __user * fpstate; 225 __u32 oldmask; 226 __u32 cr2; 227 }; 228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 229 #else 230 struct sigcontext { 231 __u64 r8; 232 __u64 r9; 233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 234 __u64 r10; 235 __u64 r11; 236 __u64 r12; 237 __u64 r13; 238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 239 __u64 r14; 240 __u64 r15; 241 __u64 rdi; 242 __u64 rsi; 243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 244 __u64 rbp; 245 __u64 rbx; 246 __u64 rdx; 247 __u64 rax; 248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 249 __u64 rcx; 250 __u64 rsp; 251 __u64 rip; 252 __u64 eflags; 253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 254 __u16 cs; 255 __u16 gs; 256 __u16 fs; 257 __u16 __pad0; 258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 259 __u64 err; 260 __u64 trapno; 261 __u64 oldmask; 262 __u64 cr2; 263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 264 struct _fpstate __user * fpstate; 265 #ifdef __ILP32__ 266 __u32 __fpstate_pad; 267 #endif 268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 269 __u64 reserved1[8]; 270 }; 271 #endif 272 #endif 273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 274