1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
5 * Derived from "include/asm-i386/signal.h"
8 #ifndef _UAPI_ASMS390_SIGNAL_H
9 #define _UAPI_ASMS390_SIGNAL_H
11 #include <linux/types.h>
12 #include <linux/time.h>
14 /* Avoid too many header ordering problems. */
19 /* Here we must cater to libcs that poke about in kernel headers. */
22 typedef unsigned long sigset_t
;
24 #endif /* __KERNEL__ */
64 /* These should not be considered constants from userland. */
66 #define SIGRTMAX _NSIG
71 * SA_ONSTACK indicates that a registered stack_t will be used.
72 * SA_RESTART flag to get restarting signals (which were the default long ago)
73 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
74 * SA_RESETHAND clears the handler when the signal is delivered.
75 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
76 * SA_NODEFER prevents the current signal from being masked in the handler.
78 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
79 * Unix names RESETHAND and NODEFER respectively.
81 #define SA_NOCLDSTOP 0x00000001
82 #define SA_NOCLDWAIT 0x00000002
83 #define SA_SIGINFO 0x00000004
84 #define SA_ONSTACK 0x08000000
85 #define SA_RESTART 0x10000000
86 #define SA_NODEFER 0x40000000
87 #define SA_RESETHAND 0x80000000
89 #define SA_NOMASK SA_NODEFER
90 #define SA_ONESHOT SA_RESETHAND
92 #define SA_RESTORER 0x04000000
94 #define MINSIGSTKSZ 2048
97 #include <asm-generic/signal-defs.h>
102 * There are two system calls in regard to sigaction, sys_rt_sigaction
103 * and sys_sigaction. Internally the kernel uses the struct old_sigaction
104 * for the older sys_sigaction system call, and the kernel version of the
105 * struct sigaction for the newer sys_rt_sigaction.
107 * The uapi definition for struct sigaction has made a strange distinction
108 * between 31-bit and 64-bit in the past. For 64-bit the uapi structure
109 * looks like the kernel struct sigaction, but for 31-bit it used to
110 * look like the kernel struct old_sigaction. That practically made the
111 * structure unusable for either system call. To get around this problem
112 * the glibc always had its own definitions for the sigaction structures.
114 * The current struct sigaction uapi definition below is suitable for the
115 * sys_rt_sigaction system call only.
119 __sighandler_t _sa_handler
;
120 void (*_sa_sigaction
)(int, struct siginfo
*, void *);
122 unsigned long sa_flags
;
123 void (*sa_restorer
)(void);
127 #define sa_handler _u._sa_handler
128 #define sa_sigaction _u._sa_sigaction
130 #endif /* __KERNEL__ */
132 typedef struct sigaltstack
{
139 #endif /* _UAPI_ASMS390_SIGNAL_H */