1#ifndef _ASM_X86_64_SIGCONTEXT_H 2#define _ASM_X86_64_SIGCONTEXT_H 3 4#include <asm/types.h> 5 6/* FXSAVE frame */ 7/* Note: reserved1/2 may someday contain valuable data. Always save/restore 8 them when you change signal frames. */ 9struct _fpstate { 10 __u16 cwd; 11 __u16 swd; 12 __u16 twd; /* Note this is not the same as the 32bit/x87/FSAVE twd */ 13 __u16 fop; 14 __u64 rip; 15 __u64 rdp; 16 __u32 mxcsr; 17 __u32 mxcsr_mask; 18 __u32 st_space[32]; /* 8*16 bytes for each FP-reg */ 19 __u32 xmm_space[64]; /* 16*16 bytes for each XMM-reg */ 20 __u32 reserved2[24]; 21}; 22 23struct sigcontext { 24 unsigned long r8; 25 unsigned long r9; 26 unsigned long r10; 27 unsigned long r11; 28 unsigned long r12; 29 unsigned long r13; 30 unsigned long r14; 31 unsigned long r15; 32 unsigned long rdi; 33 unsigned long rsi; 34 unsigned long rbp; 35 unsigned long rbx; 36 unsigned long rdx; 37 unsigned long rax; 38 unsigned long rcx; 39 unsigned long rsp; 40 unsigned long rip; 41 unsigned long eflags; /* RFLAGS */ 42 unsigned short cs; 43 unsigned short gs; 44 unsigned short fs; 45 unsigned short __pad0; 46 unsigned long err; 47 unsigned long trapno; 48 unsigned long oldmask; 49 unsigned long cr2; 50 struct _fpstate *fpstate; /* zero when no FPU context */ 51 unsigned long reserved1[8]; 52}; 53 54#endif 55