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
68 #define SA_RESTORER 0x04000000
70 #define MINSIGSTKSZ 2048
73 #include <asm-generic/signal-defs.h>
78 * There are two system calls in regard to sigaction, sys_rt_sigaction
79 * and sys_sigaction. Internally the kernel uses the struct old_sigaction
80 * for the older sys_sigaction system call, and the kernel version of the
81 * struct sigaction for the newer sys_rt_sigaction.
83 * The uapi definition for struct sigaction has made a strange distinction
84 * between 31-bit and 64-bit in the past. For 64-bit the uapi structure
85 * looks like the kernel struct sigaction, but for 31-bit it used to
86 * look like the kernel struct old_sigaction. That practically made the
87 * structure unusable for either system call. To get around this problem
88 * the glibc always had its own definitions for the sigaction structures.
90 * The current struct sigaction uapi definition below is suitable for the
91 * sys_rt_sigaction system call only.
95 __sighandler_t _sa_handler;
96 void (*_sa_sigaction)(int, struct siginfo *, void *);
98 unsigned long sa_flags;
99 void (*sa_restorer)(void);
103 #define sa_handler _u._sa_handler
104 #define sa_sigaction _u._sa_sigaction
106 #endif /* __KERNEL__ */
108 typedef struct sigaltstack {
111 __kernel_size_t ss_size;
115 #endif /* _UAPI_ASMS390_SIGNAL_H */