about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/kernel_sigaction.h
blob: 1c36146d4616b902bc0acac1180e7b624194bb3c (plain) (blame)
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
#ifndef _KERNEL_SIGACTION_H
# define _KERNEL_SIGACTION_H

#ifdef SA_RESTORER
# define HAS_SA_RESTORER 1
#endif

/* This is the sigaction structure from the Linux 3.2 kernel.  */
struct kernel_sigaction
{
  __sighandler_t k_sa_handler;
  unsigned long sa_flags;
#ifdef HAS_SA_RESTORER
  void (*sa_restorer) (void);
#endif
  /* glibc sigset is larger than kernel expected one, however sigaction
     passes the kernel expected size on rt_sigaction syscall.  */
  sigset_t sa_mask;
};

#ifndef SET_SA_RESTORER
# define SET_SA_RESTORER(kact, act)
#endif
#ifndef RESET_SA_RESTORER
# define RESET_SA_RESTORER(act, kact)
#endif

#endif