1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_SIGNAL_TYPES_H
3 #define _LINUX_SIGNAL_TYPES_H
6 * Basic signal handling related data type definitions:
9 #include <linux/list.h>
10 #include <uapi/linux/signal.h>
12 typedef struct kernel_siginfo
{
17 * Real Time signals may be queued.
21 struct list_head list
;
23 kernel_siginfo_t info
;
24 struct user_struct
*user
;
28 #define SIGQUEUE_PREALLOC 1
31 struct list_head list
;
36 #ifndef __ARCH_HAS_IRIX_SIGACTION
37 __sighandler_t sa_handler
;
38 unsigned long sa_flags
;
40 unsigned int sa_flags
;
41 __sighandler_t sa_handler
;
43 #ifdef __ARCH_HAS_SA_RESTORER
44 __sigrestore_t sa_restorer
;
46 sigset_t sa_mask
; /* mask last for extensibility */
51 #ifdef __ARCH_HAS_KA_RESTORER
52 __sigrestore_t ka_restorer
;
56 #ifdef CONFIG_OLD_SIGACTION
57 struct old_sigaction
{
58 __sighandler_t sa_handler
;
60 unsigned long sa_flags
;
61 __sigrestore_t sa_restorer
;
66 struct k_sigaction ka
;
67 kernel_siginfo_t info
;
71 #ifndef __ARCH_UAPI_SA_FLAGS
73 #define __ARCH_UAPI_SA_FLAGS SA_RESTORER
75 #define __ARCH_UAPI_SA_FLAGS 0
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)
83 #endif /* _LINUX_SIGNAL_TYPES_H */