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