1 2 struct _fpstate { 3 unsigned short cwd; 4 unsigned short swd; 5 unsigned short twd; /* Note this is not the same as the 32bit/x87/FSAVE twd */ 6 unsigned short fop; 7 unsigned long long rip; 8 unsigned long long rdp; 9 unsigned int mxcsr; 10 unsigned int mxcsr_mask; 11 unsigned int st_space[32]; /* 8*16 bytes for each FP-reg */ 12 unsigned int xmm_space[64]; /* 16*16 bytes for each XMM-reg */ 13 unsigned int reserved2[24]; 14 }; 15 16 struct sigcontext { 17 unsigned long r8; 18 unsigned long r9; 19 unsigned long r10; 20 unsigned long r11; 21 unsigned long r12; 22 unsigned long r13; 23 unsigned long r14; 24 unsigned long r15; 25 unsigned long rdi; 26 unsigned long rsi; 27 unsigned long rbp; 28 unsigned long rbx; 29 unsigned long rdx; 30 unsigned long rax; 31 unsigned long rcx; 32 unsigned long rsp; 33 unsigned long rip; 34 unsigned long eflags; /* RFLAGS */ 35 unsigned short cs; 36 unsigned short gs; 37 unsigned short fs; 38 unsigned short __pad0; 39 unsigned long err; 40 unsigned long trapno; 41 unsigned long oldmask; 42 unsigned long cr2; 43 struct _fpstate *fpstate; /* zero when no FPU context */ 44 unsigned long reserved1[8]; 45 }; 46