Blame sysdeps/unix/sysv/linux/s390/kernel_sigaction.h

Packit 6c4009
#include <bits/types/siginfo_t.h>
Packit 6c4009
Packit 6c4009
#define SA_RESTORER	0x04000000
Packit 6c4009
Packit 6c4009
/* This is the sigaction structure from the Linux 3.2 kernel.  */
Packit 6c4009
struct kernel_sigaction
Packit 6c4009
{
Packit 6c4009
  union
Packit 6c4009
  {
Packit 6c4009
    __sighandler_t _sa_handler;
Packit 6c4009
    void (*_sa_sigaction)(int, siginfo_t *, void *);
Packit 6c4009
  } _u;
Packit 6c4009
#define k_sa_handler _u._sa_handler
Packit 6c4009
  /* The 'struct sigaction' definition in s390 kernel header
Packit 6c4009
     arch/s390/include/uapi/asm/signal.h is used for __NR_rt_sigaction
Packit 6c4009
     on 64 bits and for __NR_sigaction for 31 bits.
Packit 6c4009
Packit 6c4009
     The expected layout for __NR_rt_sigaction for 31 bits is either
Packit 6c4009
     'struct sigaction' from include/linux/signal_types.h or
Packit 6c4009
     'struct compat_sigaction' from include/linux/compat.h.
Packit 6c4009
Packit 6c4009
     So for __NR_rt_sigaction we can use the same layout for both s390x
Packit 6c4009
     and s390.  */
Packit 6c4009
  unsigned long sa_flags;
Packit 6c4009
  void (*sa_restorer)(void);
Packit 6c4009
  sigset_t sa_mask;
Packit 6c4009
};
Packit 6c4009
Packit 6c4009
#define SET_SA_RESTORER(kact, act)             \
Packit 6c4009
  (kact)->sa_restorer = (act)->sa_restorer
Packit 6c4009
#define RESET_SA_RESTORER(act, kact)           \
Packit 6c4009
  (act)->sa_restorer = (kact)->sa_restorer