Merge tag 'nfs-for-5.1-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[sfrench/cifs-2.6.git] / include / linux / signal_types.h
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
12 typedef struct kernel_siginfo {
13         __SIGINFO;
14 } kernel_siginfo_t;
15
16 /*
17  * Real Time signals may be queued.
18  */
19
20 struct 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
30 struct sigpending {
31         struct list_head list;
32         sigset_t signal;
33 };
34
35 struct 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
49 struct 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
57 struct 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
65 struct ksignal {
66         struct k_sigaction ka;
67         kernel_siginfo_t info;
68         int sig;
69 };
70
71 #endif /* _LINUX_SIGNAL_TYPES_H */