summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/s390/kernel_sigaction.h
blob: a8beaf7347db44cf67896c9ec40532a58984012f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <bits/types/siginfo_t.h>

#define SA_RESTORER	0x04000000

/* This is the sigaction structure from the Linux 3.2 kernel.  */
struct kernel_sigaction
{
  union
  {
    __sighandler_t _sa_handler;
    void (*_sa_sigaction)(int, siginfo_t *, void *);
  } _u;
#define k_sa_handler _u._sa_handler
#ifndef __s390x__
  sigset_t sa_mask;
  unsigned long sa_flags;
  void (*sa_restorer)(void);
#else
  unsigned long sa_flags;
  void (*sa_restorer)(void);
  sigset_t sa_mask;
#endif
};

#define SET_SA_RESTORER(kact, act)             \
  (kact)->sa_restorer = (act)->sa_restorer
#define RESET_SA_RESTORER(act, kact)           \
  (act)->sa_restorer = (kact)->sa_restorer