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 xstate_bv; 32 __u32 xstate_size; 33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 34 __u32 padding[7]; 35 }; 36 #ifdef __i386__ 37 struct _fpreg { 38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 39 unsigned short significand[4]; 40 unsigned short exponent; 41 }; 42 struct _fpxreg { 43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 44 unsigned short significand[4]; 45 unsigned short exponent; 46 unsigned short padding[3]; 47 }; 48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 49 struct _xmmreg { 50 unsigned long element[4]; 51 }; 52 struct _fpstate { 53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 54 unsigned long cw; 55 unsigned long sw; 56 unsigned long tag; 57 unsigned long ipoff; 58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 59 unsigned long cssel; 60 unsigned long dataoff; 61 unsigned long datasel; 62 struct _fpreg _st[8]; 63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 64 unsigned short status; 65 unsigned short magic; 66 unsigned long _fxsr_env[6]; 67 unsigned long mxcsr; 68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 69 unsigned long reserved; 70 struct _fpxreg _fxsr_st[8]; 71 struct _xmmreg _xmm[8]; 72 unsigned long padding1[44]; 73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 74 union { 75 unsigned long padding2[12]; 76 struct _fpx_sw_bytes sw_reserved; 77 }; 78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 79 }; 80 #define X86_FXSR_MAGIC 0x0000 81 struct sigcontext { 82 unsigned short gs, __gsh; 83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 84 unsigned short fs, __fsh; 85 unsigned short es, __esh; 86 unsigned short ds, __dsh; 87 unsigned long edi; 88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 89 unsigned long esi; 90 unsigned long ebp; 91 unsigned long esp; 92 unsigned long ebx; 93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 94 unsigned long edx; 95 unsigned long ecx; 96 unsigned long eax; 97 unsigned long trapno; 98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 99 unsigned long err; 100 unsigned long eip; 101 unsigned short cs, __csh; 102 unsigned long eflags; 103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 104 unsigned long esp_at_signal; 105 unsigned short ss, __ssh; 106 struct _fpstate __user * fpstate; 107 unsigned long oldmask; 108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 109 unsigned long cr2; 110 }; 111 #else 112 struct _fpstate { 113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 114 __u16 cwd; 115 __u16 swd; 116 __u16 twd; 117 __u16 fop; 118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 119 __u64 rip; 120 __u64 rdp; 121 __u32 mxcsr; 122 __u32 mxcsr_mask; 123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 124 __u32 st_space[32]; 125 __u32 xmm_space[64]; 126 __u32 reserved2[12]; 127 union { 128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 129 __u32 reserved3[12]; 130 struct _fpx_sw_bytes sw_reserved; 131 }; 132 }; 133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 134 struct sigcontext { 135 __u64 r8; 136 __u64 r9; 137 __u64 r10; 138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 139 __u64 r11; 140 __u64 r12; 141 __u64 r13; 142 __u64 r14; 143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 144 __u64 r15; 145 __u64 rdi; 146 __u64 rsi; 147 __u64 rbp; 148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 149 __u64 rbx; 150 __u64 rdx; 151 __u64 rax; 152 __u64 rcx; 153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 154 __u64 rsp; 155 __u64 rip; 156 __u64 eflags; 157 __u16 cs; 158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 159 __u16 gs; 160 __u16 fs; 161 __u16 __pad0; 162 __u64 err; 163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 164 __u64 trapno; 165 __u64 oldmask; 166 __u64 cr2; 167 struct _fpstate __user * fpstate; 168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 169 #ifdef __ILP32__ 170 __u32 __fpstate_pad; 171 #endif 172 __u64 reserved1[8]; 173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 174 }; 175 #endif 176 struct _xsave_hdr { 177 __u64 xstate_bv; 178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 179 __u64 reserved1[2]; 180 __u64 reserved2[5]; 181 }; 182 struct _ymmh_state { 183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 184 __u32 ymmh_space[64]; 185 }; 186 struct _xstate { 187 struct _fpstate fpstate; 188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 189 struct _xsave_hdr xstate_hdr; 190 struct _ymmh_state ymmh; 191 }; 192 #endif 193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */ 194