ucontext.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. /*
  3. * S390 version
  4. *
  5. * Derived from "include/asm-i386/ucontext.h"
  6. */
  7. #ifndef _ASM_S390_UCONTEXT_H
  8. #define _ASM_S390_UCONTEXT_H
  9. #define UC_GPRS_HIGH 1 /* uc_mcontext_ext has valid high gprs */
  10. #define UC_VXRS 2 /* uc_mcontext_ext has valid vector regs */
  11. /*
  12. * The struct ucontext_extended describes how the registers are stored
  13. * on a rt signal frame. Please note that the structure is not fixed,
  14. * if new CPU registers are added to the user state the size of the
  15. * struct ucontext_extended will increase.
  16. */
  17. struct ucontext_extended {
  18. unsigned long uc_flags;
  19. struct ucontext *uc_link;
  20. stack_t uc_stack;
  21. _sigregs uc_mcontext;
  22. sigset_t uc_sigmask;
  23. /* Allow for uc_sigmask growth. Glibc uses a 1024-bit sigset_t. */
  24. unsigned char __unused[128 - sizeof(sigset_t)];
  25. _sigregs_ext uc_mcontext_ext;
  26. };
  27. struct ucontext {
  28. unsigned long uc_flags;
  29. struct ucontext *uc_link;
  30. stack_t uc_stack;
  31. _sigregs uc_mcontext;
  32. sigset_t uc_sigmask;
  33. /* Allow for uc_sigmask growth. Glibc uses a 1024-bit sigset_t. */
  34. unsigned char __unused[128 - sizeof(sigset_t)];
  35. };
  36. #endif /* !_ASM_S390_UCONTEXT_H */