ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / 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
6 /* FXSAVE frame */
7 /* Note: reserved1/2 may someday contain valuable data. Always save/restore
8    them when you change signal frames. */
9 struct _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
23 struct 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