sigframe.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifdef CONFIG_X86_32
  2. struct sigframe {
  3. char __user *pretcode;
  4. int sig;
  5. struct sigcontext sc;
  6. /*
  7. * fpstate is unused. fpstate is moved/allocated after
  8. * retcode[] below. This movement allows to have the FP state and the
  9. * future state extensions (xsave) stay together.
  10. * And at the same time retaining the unused fpstate, prevents changing
  11. * the offset of extramask[] in the sigframe and thus prevent any
  12. * legacy application accessing/modifying it.
  13. */
  14. struct _fpstate fpstate_unused;
  15. unsigned long extramask[_NSIG_WORDS-1];
  16. char retcode[8];
  17. /* fp state follows here */
  18. };
  19. struct rt_sigframe {
  20. char __user *pretcode;
  21. int sig;
  22. struct siginfo __user *pinfo;
  23. void __user *puc;
  24. struct siginfo info;
  25. struct ucontext uc;
  26. char retcode[8];
  27. /* fp state follows here */
  28. };
  29. #else
  30. struct rt_sigframe {
  31. char __user *pretcode;
  32. struct ucontext uc;
  33. struct siginfo info;
  34. /* fp state follows here */
  35. };
  36. int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
  37. sigset_t *set, struct pt_regs *regs);
  38. int ia32_setup_frame(int sig, struct k_sigaction *ka,
  39. sigset_t *set, struct pt_regs *regs);
  40. #endif