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