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
  16/*
  17 * Real Time signals may be queued.
  18 */
  19
  20struct sigqueue {
  21        struct list_head list;
  22        int flags;
  23        kernel_siginfo_t info;
  24        struct user_struct *user;
  25};
  26
  27/* flags values. */
  28#define SIGQUEUE_PREALLOC       1
  29
  30struct sigpending {
  31        struct list_head list;
  32        sigset_t signal;
  33};
  34
  35struct sigaction {
  36#ifndef __ARCH_HAS_IRIX_SIGACTION
  37        __sighandler_t  sa_handler;
  38        unsigned long   sa_flags;
  39#else
  40        unsigned int    sa_flags;
  41        __sighandler_t  sa_handler;
  42#endif
  43#ifdef __ARCH_HAS_SA_RESTORER
  44        __sigrestore_t sa_restorer;
  45#endif
  46        sigset_t        sa_mask;        /* mask last for extensibility */
  47};
  48
  49struct k_sigaction {
  50        struct sigaction sa;
  51#ifdef __ARCH_HAS_KA_RESTORER
  52        __sigrestore_t ka_restorer;
  53#endif
  54};
  55
  56#ifdef CONFIG_OLD_SIGACTION
  57struct old_sigaction {
  58        __sighandler_t sa_handler;
  59        old_sigset_t sa_mask;
  60        unsigned long sa_flags;
  61        __sigrestore_t sa_restorer;
  62};
  63#endif
  64
  65struct ksignal {
  66        struct k_sigaction ka;
  67        kernel_siginfo_t info;
  68        int sig;
  69};
  70
  71#ifndef __ARCH_UAPI_SA_FLAGS
  72#ifdef SA_RESTORER
  73#define __ARCH_UAPI_SA_FLAGS    SA_RESTORER
  74#else
  75#define __ARCH_UAPI_SA_FLAGS    0
  76#endif
  77#endif
  78
  79#define UAPI_SA_FLAGS                                                          \
  80        (SA_NOCLDSTOP | SA_NOCLDWAIT | SA_SIGINFO | SA_ONSTACK | SA_RESTART |  \
  81         SA_NODEFER | SA_RESETHAND | SA_EXPOSE_TAGBITS | __ARCH_UAPI_SA_FLAGS)
  82
  83#endif /* _LINUX_SIGNAL_TYPES_H */
  84