kernel_sigaction.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef _BITS_SIGACTION_STRUCT_H
  2. #define _BITS_SIGACTION_STRUCT_H
  3. /* This is the sigaction structure from the Linux 2.1.24 kernel. */
  4. #include <sgidefs.h>
  5. #define HAVE_SA_RESTORER
  6. struct old_kernel_sigaction {
  7. unsigned int sa_flags;
  8. __sighandler_t k_sa_handler;
  9. unsigned long sa_mask;
  10. unsigned int __pad0[3]; /* reserved, keep size constant */
  11. /* Abi says here follows reserved int[2] */
  12. void (*sa_restorer)(void);
  13. #if (_MIPS_SZPTR < 64)
  14. /*
  15. * For 32 bit code we have to pad struct sigaction to get
  16. * constant size for the ABI
  17. */
  18. int pad1[1]; /* reserved */
  19. #endif
  20. };
  21. #define _KERNEL_NSIG 128
  22. #define _KERNEL_NSIG_BPW _MIPS_SZLONG
  23. #define _KERNEL_NSIG_WORDS (_KERNEL_NSIG / _KERNEL_NSIG_BPW)
  24. typedef struct {
  25. unsigned long sig[_KERNEL_NSIG_WORDS];
  26. } kernel_sigset_t;
  27. /* This is the sigaction structure from the Linux 2.1.68 kernel. */
  28. struct kernel_sigaction {
  29. unsigned int sa_flags;
  30. __sighandler_t k_sa_handler;
  31. kernel_sigset_t sa_mask;
  32. void (*sa_restorer)(void);
  33. int s_resv[1]; /* reserved */
  34. };
  35. extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded,
  36. struct kernel_sigaction *__unbounded, size_t) attribute_hidden;
  37. #endif