sigcontext_64.h 1.2 KB

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