Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Merge branch 'devel'
[palacios.git] / kitten / include / arch-x86_64 / sigcontext.h
1 #ifndef _X86_64_SIGCONTEXT_H
2 #define _X86_64_SIGCONTEXT_H
3
4 #include <arch/types.h>
5 #include <lwk/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