linux/include/uapi/asm-generic/signal-defs.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2#ifndef __ASM_GENERIC_SIGNAL_DEFS_H
   3#define __ASM_GENERIC_SIGNAL_DEFS_H
   4
   5#include <linux/compiler.h>
   6
   7/*
   8 * SA_FLAGS values:
   9 *
  10 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
  11 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
  12 * SA_SIGINFO delivers the signal with SIGINFO structs.
  13 * SA_ONSTACK indicates that a registered stack_t will be used.
  14 * SA_RESTART flag to get restarting signals (which were the default long ago)
  15 * SA_NODEFER prevents the current signal from being masked in the handler.
  16 * SA_RESETHAND clears the handler when the signal is delivered.
  17 * SA_UNSUPPORTED is a flag bit that will never be supported. Kernels from
  18 * before the introduction of SA_UNSUPPORTED did not clear unknown bits from
  19 * sa_flags when read using the oldact argument to sigaction and rt_sigaction,
  20 * so this bit allows flag bit support to be detected from userspace while
  21 * allowing an old kernel to be distinguished from a kernel that supports every
  22 * flag bit.
  23 * SA_EXPOSE_TAGBITS exposes an architecture-defined set of tag bits in
  24 * siginfo.si_addr.
  25 *
  26 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
  27 * Unix names RESETHAND and NODEFER respectively.
  28 */
  29#ifndef SA_NOCLDSTOP
  30#define SA_NOCLDSTOP    0x00000001
  31#endif
  32#ifndef SA_NOCLDWAIT
  33#define SA_NOCLDWAIT    0x00000002
  34#endif
  35#ifndef SA_SIGINFO
  36#define SA_SIGINFO      0x00000004
  37#endif
  38/* 0x00000008 used on alpha, mips, parisc */
  39/* 0x00000010 used on alpha, parisc */
  40/* 0x00000020 used on alpha, parisc, sparc */
  41/* 0x00000040 used on alpha, parisc */
  42/* 0x00000080 used on parisc */
  43/* 0x00000100 used on sparc */
  44/* 0x00000200 used on sparc */
  45#define SA_UNSUPPORTED  0x00000400
  46#define SA_EXPOSE_TAGBITS       0x00000800
  47/* 0x00010000 used on mips */
  48/* 0x00800000 used for internal SA_IMMUTABLE */
  49/* 0x01000000 used on x86 */
  50/* 0x02000000 used on x86 */
  51/*
  52 * New architectures should not define the obsolete
  53 *      SA_RESTORER     0x04000000
  54 */
  55#ifndef SA_ONSTACK
  56#define SA_ONSTACK      0x08000000
  57#endif
  58#ifndef SA_RESTART
  59#define SA_RESTART      0x10000000
  60#endif
  61#ifndef SA_NODEFER
  62#define SA_NODEFER      0x40000000
  63#endif
  64#ifndef SA_RESETHAND
  65#define SA_RESETHAND    0x80000000
  66#endif
  67
  68#define SA_NOMASK       SA_NODEFER
  69#define SA_ONESHOT      SA_RESETHAND
  70
  71#ifndef SIG_BLOCK
  72#define SIG_BLOCK          0    /* for blocking signals */
  73#endif
  74#ifndef SIG_UNBLOCK
  75#define SIG_UNBLOCK        1    /* for unblocking signals */
  76#endif
  77#ifndef SIG_SETMASK
  78#define SIG_SETMASK        2    /* for setting the signal mask */
  79#endif
  80
  81#ifndef __ASSEMBLY__
  82typedef void __signalfn_t(int);
  83typedef __signalfn_t __user *__sighandler_t;
  84
  85typedef void __restorefn_t(void);
  86typedef __restorefn_t __user *__sigrestore_t;
  87
  88#define SIG_DFL ((__force __sighandler_t)0)     /* default signal handling */
  89#define SIG_IGN ((__force __sighandler_t)1)     /* ignore signal */
  90#define SIG_ERR ((__force __sighandler_t)-1)    /* error return from signal */
  91#endif
  92
  93#endif /* __ASM_GENERIC_SIGNAL_DEFS_H */
  94