196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#ifndef _UAPI_ASMAXP_SIGNAL_H
296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define _UAPI_ASMAXP_SIGNAL_H
396433f6ee49032d7a8bda76de2b05cfde2914354David Howells
496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#include <linux/types.h>
596433f6ee49032d7a8bda76de2b05cfde2914354David Howells
696433f6ee49032d7a8bda76de2b05cfde2914354David Howells/* Avoid too many header ordering problems.  */
796433f6ee49032d7a8bda76de2b05cfde2914354David Howellsstruct siginfo;
896433f6ee49032d7a8bda76de2b05cfde2914354David Howells
996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#ifndef __KERNEL__
1096433f6ee49032d7a8bda76de2b05cfde2914354David Howells/* Here we must cater to libcs that poke about in kernel headers.  */
1196433f6ee49032d7a8bda76de2b05cfde2914354David Howells
1296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define NSIG		32
1396433f6ee49032d7a8bda76de2b05cfde2914354David Howellstypedef unsigned long sigset_t;
1496433f6ee49032d7a8bda76de2b05cfde2914354David Howells
1596433f6ee49032d7a8bda76de2b05cfde2914354David Howells#endif /* __KERNEL__ */
1696433f6ee49032d7a8bda76de2b05cfde2914354David Howells
1796433f6ee49032d7a8bda76de2b05cfde2914354David Howells
1896433f6ee49032d7a8bda76de2b05cfde2914354David Howells/*
1996433f6ee49032d7a8bda76de2b05cfde2914354David Howells * Linux/AXP has different signal numbers that Linux/i386: I'm trying
2096433f6ee49032d7a8bda76de2b05cfde2914354David Howells * to make it OSF/1 binary compatible, at least for normal binaries.
2196433f6ee49032d7a8bda76de2b05cfde2914354David Howells */
2296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGHUP		 1
2396433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGINT		 2
2496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGQUIT		 3
2596433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGILL		 4
2696433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGTRAP		 5
2796433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGABRT		 6
2896433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGEMT		 7
2996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGFPE		 8
3096433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGKILL		 9
3196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGBUS		10
3296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGSEGV		11
3396433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGSYS		12
3496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGPIPE		13
3596433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGALRM		14
3696433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGTERM		15
3796433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGURG		16
3896433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGSTOP		17
3996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGTSTP		18
4096433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGCONT		19
4196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGCHLD		20
4296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGTTIN		21
4396433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGTTOU		22
4496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGIO		23
4596433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGXCPU		24
4696433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGXFSZ		25
4796433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGVTALRM	26
4896433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGPROF		27
4996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGWINCH	28
5096433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGINFO		29
5196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGUSR1		30
5296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGUSR2		31
5396433f6ee49032d7a8bda76de2b05cfde2914354David Howells
5496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGPOLL	SIGIO
5596433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGPWR	SIGINFO
5696433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGIOT	SIGABRT
5796433f6ee49032d7a8bda76de2b05cfde2914354David Howells
5896433f6ee49032d7a8bda76de2b05cfde2914354David Howells/* These should not be considered constants from userland.  */
5996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGRTMIN	32
6096433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGRTMAX	_NSIG
6196433f6ee49032d7a8bda76de2b05cfde2914354David Howells
6296433f6ee49032d7a8bda76de2b05cfde2914354David Howells/*
6396433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_FLAGS values:
6496433f6ee49032d7a8bda76de2b05cfde2914354David Howells *
6596433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_ONSTACK indicates that a registered stack_t will be used.
6696433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_RESTART flag to get restarting signals (which were the default long ago)
6796433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
6896433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_RESETHAND clears the handler when the signal is delivered.
6996433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
7096433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_NODEFER prevents the current signal from being masked in the handler.
7196433f6ee49032d7a8bda76de2b05cfde2914354David Howells *
7296433f6ee49032d7a8bda76de2b05cfde2914354David Howells * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
7396433f6ee49032d7a8bda76de2b05cfde2914354David Howells * Unix names RESETHAND and NODEFER respectively.
7496433f6ee49032d7a8bda76de2b05cfde2914354David Howells */
7596433f6ee49032d7a8bda76de2b05cfde2914354David Howells
7696433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_ONSTACK	0x00000001
7796433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_RESTART	0x00000002
7896433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_NOCLDSTOP	0x00000004
7996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_NODEFER	0x00000008
8096433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_RESETHAND	0x00000010
8196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_NOCLDWAIT	0x00000020
8296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_SIGINFO	0x00000040
8396433f6ee49032d7a8bda76de2b05cfde2914354David Howells
8496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_ONESHOT	SA_RESETHAND
8596433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SA_NOMASK	SA_NODEFER
8696433f6ee49032d7a8bda76de2b05cfde2914354David Howells
8796433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define MINSIGSTKSZ	4096
8896433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIGSTKSZ	16384
8996433f6ee49032d7a8bda76de2b05cfde2914354David Howells
9096433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIG_BLOCK          1	/* for blocking signals */
9196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIG_UNBLOCK        2	/* for unblocking signals */
9296433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define SIG_SETMASK        3	/* for setting the signal mask */
9396433f6ee49032d7a8bda76de2b05cfde2914354David Howells
9496433f6ee49032d7a8bda76de2b05cfde2914354David Howells#include <asm-generic/signal-defs.h>
9596433f6ee49032d7a8bda76de2b05cfde2914354David Howells
9696433f6ee49032d7a8bda76de2b05cfde2914354David Howells#ifndef __KERNEL__
9796433f6ee49032d7a8bda76de2b05cfde2914354David Howells/* Here we must cater to libcs that poke about in kernel headers.  */
9896433f6ee49032d7a8bda76de2b05cfde2914354David Howells
9996433f6ee49032d7a8bda76de2b05cfde2914354David Howellsstruct sigaction {
10096433f6ee49032d7a8bda76de2b05cfde2914354David Howells	union {
10196433f6ee49032d7a8bda76de2b05cfde2914354David Howells	  __sighandler_t	_sa_handler;
10296433f6ee49032d7a8bda76de2b05cfde2914354David Howells	  void (*_sa_sigaction)(int, struct siginfo *, void *);
10396433f6ee49032d7a8bda76de2b05cfde2914354David Howells	} _u;
10496433f6ee49032d7a8bda76de2b05cfde2914354David Howells	sigset_t	sa_mask;
10596433f6ee49032d7a8bda76de2b05cfde2914354David Howells	int		sa_flags;
10696433f6ee49032d7a8bda76de2b05cfde2914354David Howells};
10796433f6ee49032d7a8bda76de2b05cfde2914354David Howells
10896433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define sa_handler	_u._sa_handler
10996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#define sa_sigaction	_u._sa_sigaction
11096433f6ee49032d7a8bda76de2b05cfde2914354David Howells
11196433f6ee49032d7a8bda76de2b05cfde2914354David Howells#endif /* __KERNEL__ */
11296433f6ee49032d7a8bda76de2b05cfde2914354David Howells
11396433f6ee49032d7a8bda76de2b05cfde2914354David Howellstypedef struct sigaltstack {
11496433f6ee49032d7a8bda76de2b05cfde2914354David Howells	void __user *ss_sp;
11596433f6ee49032d7a8bda76de2b05cfde2914354David Howells	int ss_flags;
11696433f6ee49032d7a8bda76de2b05cfde2914354David Howells	size_t ss_size;
11796433f6ee49032d7a8bda76de2b05cfde2914354David Howells} stack_t;
11896433f6ee49032d7a8bda76de2b05cfde2914354David Howells
11996433f6ee49032d7a8bda76de2b05cfde2914354David Howells/* sigstack(2) is deprecated, and will be withdrawn in a future version
12096433f6ee49032d7a8bda76de2b05cfde2914354David Howells   of the X/Open CAE Specification.  Use sigaltstack instead.  It is only
12196433f6ee49032d7a8bda76de2b05cfde2914354David Howells   implemented here for OSF/1 compatibility.  */
12296433f6ee49032d7a8bda76de2b05cfde2914354David Howells
12396433f6ee49032d7a8bda76de2b05cfde2914354David Howellsstruct sigstack {
12496433f6ee49032d7a8bda76de2b05cfde2914354David Howells	void __user *ss_sp;
12596433f6ee49032d7a8bda76de2b05cfde2914354David Howells	int ss_onstack;
12696433f6ee49032d7a8bda76de2b05cfde2914354David Howells};
12796433f6ee49032d7a8bda76de2b05cfde2914354David Howells
12896433f6ee49032d7a8bda76de2b05cfde2914354David Howells
12996433f6ee49032d7a8bda76de2b05cfde2914354David Howells#endif /* _UAPI_ASMAXP_SIGNAL_H */
130