sigcontext.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. * S390 version
  3. * Copyright IBM Corp. 1999, 2000
  4. */
  5. #ifndef _ASM_S390_SIGCONTEXT_H
  6. #define _ASM_S390_SIGCONTEXT_H
  7. #include <linux/compiler.h>
  8. #define __NUM_GPRS 16
  9. #define __NUM_FPRS 16
  10. #define __NUM_ACRS 16
  11. #ifndef __s390x__
  12. /* Has to be at least _NSIG_WORDS from asm/signal.h */
  13. #define _SIGCONTEXT_NSIG 64
  14. #define _SIGCONTEXT_NSIG_BPW 32
  15. /* Size of stack frame allocated when calling signal handler. */
  16. #define __SIGNAL_FRAMESIZE 96
  17. #else /* __s390x__ */
  18. /* Has to be at least _NSIG_WORDS from asm/signal.h */
  19. #define _SIGCONTEXT_NSIG 64
  20. #define _SIGCONTEXT_NSIG_BPW 64
  21. /* Size of stack frame allocated when calling signal handler. */
  22. #define __SIGNAL_FRAMESIZE 160
  23. #endif /* __s390x__ */
  24. #define _SIGCONTEXT_NSIG_WORDS (_SIGCONTEXT_NSIG / _SIGCONTEXT_NSIG_BPW)
  25. #define _SIGMASK_COPY_SIZE (sizeof(unsigned long)*_SIGCONTEXT_NSIG_WORDS)
  26. typedef struct
  27. {
  28. unsigned long mask;
  29. unsigned long addr;
  30. } __attribute__ ((aligned(8))) _psw_t;
  31. typedef struct
  32. {
  33. _psw_t psw;
  34. unsigned long gprs[__NUM_GPRS];
  35. unsigned int acrs[__NUM_ACRS];
  36. } _s390_regs_common;
  37. typedef struct
  38. {
  39. unsigned int fpc;
  40. unsigned int pad;
  41. double fprs[__NUM_FPRS];
  42. } _s390_fp_regs;
  43. typedef struct
  44. {
  45. _s390_regs_common regs;
  46. _s390_fp_regs fpregs;
  47. } _sigregs;
  48. struct sigcontext
  49. {
  50. unsigned long oldmask[_SIGCONTEXT_NSIG_WORDS];
  51. _sigregs __user *sregs;
  52. };
  53. #endif