linux/include/linux/signal_types.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef _LINUX_SIGNAL_TYPES_H
   3#define _LINUX_SIGNAL_TYPES_H
   4
   5/*
   6 * Basic signal handling related data type definitions:
   7 */
   8
   9#include <linux/list.h>
  10#include <uapi/linux/signal.h>
  11
  12typedef struct kernel_siginfo {
  13        __SIGINFO;
  14} kernel_siginfo_t;
  15
  16struct ucounts;
  17
  18/*
  19 * Real Time signals may be queued.
  20 */
  21
  22struct sigqueue {
  23        struct list_head list;
  24        int flags;
  25        kernel_siginfo_t info;
  26        struct ucounts *ucounts;
  27};
  28
  29/* flags values. */
  30#define SIGQUEUE_PREALLOC       1
  31
  32struct sigpending {
  33        struct list_head list;
  34        sigset_t signal;
  35};
  36
  37struct sigaction {
  38#ifndef __ARCH_HAS_IRIX_SIGACTION
  39        __sighandler_t  sa_handler;
  40        unsigned long   sa_flags;
  41#else
  42        unsigned int    sa_flags;
  43        __sighandler_t  sa_handler;
  44#endif
  45#ifdef __ARCH_HAS_SA_RESTORER
  46        __sigrestore_t sa_restorer;
  47#endif
  48        sigset_t        sa_mask;        /* mask last for extensibility */
  49};
  50
  51struct k_sigaction {
  52        struct sigaction sa;
  53#ifdef __ARCH_HAS_KA_RESTORER
  54        __sigrestore_t ka_restorer;
  55#endif
  56};
  57
  58#ifdef CONFIG_OLD_SIGACTION
  59struct old_sigaction {
  60        __sighandler_t sa_handler;
  61        old_sigset_t sa_mask;
  62        unsigned long sa_flags;
  63        __sigrestore_t sa_restorer;
  64};
  65#endif
  66
  67struct ksignal {
  68        struct k_sigaction ka;
  69        kernel_siginfo_t info;
  70        int sig;
  71};
  72
  73/* Used to kill the race between sigaction and forced signals */
  74#define SA_IMMUTABLE            0x00800000
  75
  76#ifndef __ARCH_UAPI_SA_FLAGS
  77#ifdef SA_RESTORER
  78#define __ARCH_UAPI_SA_FLAGS    SA_RESTORER
  79#else
  80#define __ARCH_UAPI_SA_FLAGS    0
  81#endif
  82#endif
  83
  84#define UAPI_SA_FLAGS                                                          \
  85        (SA_NOCLDSTOP | SA_NOCLDWAIT | SA_SIGINFO | SA_ONSTACK | SA_RESTART |  \
  86         SA_NODEFER | SA_RESETHAND | SA_EXPOSE_TAGBITS | __ARCH_UAPI_SA_FLAGS)
  87
  88#endif /* _LINUX_SIGNAL_TYPES_H */
  89