1af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef _UAPI_ASM_X86_SIGNAL_H
2af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define _UAPI_ASM_X86_SIGNAL_H
3af170c5061dd78512c469e6e2d211980cdb2c193David Howells
4af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef __ASSEMBLY__
5af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <linux/types.h>
6af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <linux/time.h>
7af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <linux/compiler.h>
8af170c5061dd78512c469e6e2d211980cdb2c193David Howells
9af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* Avoid too many header ordering problems.  */
10af170c5061dd78512c469e6e2d211980cdb2c193David Howellsstruct siginfo;
11af170c5061dd78512c469e6e2d211980cdb2c193David Howells
12af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef __KERNEL__
13af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* Here we must cater to libcs that poke about in kernel headers.  */
14af170c5061dd78512c469e6e2d211980cdb2c193David Howells
15af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define NSIG		32
16af170c5061dd78512c469e6e2d211980cdb2c193David Howellstypedef unsigned long sigset_t;
17af170c5061dd78512c469e6e2d211980cdb2c193David Howells
18af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* __KERNEL__ */
19af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* __ASSEMBLY__ */
20af170c5061dd78512c469e6e2d211980cdb2c193David Howells
21af170c5061dd78512c469e6e2d211980cdb2c193David Howells
22af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGHUP		 1
23af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGINT		 2
24af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGQUIT		 3
25af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGILL		 4
26af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTRAP		 5
27af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGABRT		 6
28af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGIOT		 6
29af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGBUS		 7
30af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGFPE		 8
31af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGKILL		 9
32af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGUSR1		10
33af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSEGV		11
34af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGUSR2		12
35af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPIPE		13
36af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGALRM		14
37af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTERM		15
38af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSTKFLT	16
39af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGCHLD		17
40af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGCONT		18
41af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSTOP		19
42af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTSTP		20
43af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTTIN		21
44af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGTTOU		22
45af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGURG		23
46af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGXCPU		24
47af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGXFSZ		25
48af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGVTALRM	26
49af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPROF		27
50af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGWINCH	28
51af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGIO		29
52af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPOLL		SIGIO
53af170c5061dd78512c469e6e2d211980cdb2c193David Howells/*
54af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGLOST		29
55af170c5061dd78512c469e6e2d211980cdb2c193David Howells*/
56af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGPWR		30
57af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSYS		31
58af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define	SIGUNUSED	31
59af170c5061dd78512c469e6e2d211980cdb2c193David Howells
60af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* These should not be considered constants from userland.  */
61af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGRTMIN	32
62af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGRTMAX	_NSIG
63af170c5061dd78512c469e6e2d211980cdb2c193David Howells
64af170c5061dd78512c469e6e2d211980cdb2c193David Howells/*
65af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_FLAGS values:
66af170c5061dd78512c469e6e2d211980cdb2c193David Howells *
67af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_ONSTACK indicates that a registered stack_t will be used.
68af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_RESTART flag to get restarting signals (which were the default long ago)
69af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
70af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_RESETHAND clears the handler when the signal is delivered.
71af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
72af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_NODEFER prevents the current signal from being masked in the handler.
73af170c5061dd78512c469e6e2d211980cdb2c193David Howells *
74af170c5061dd78512c469e6e2d211980cdb2c193David Howells * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
75af170c5061dd78512c469e6e2d211980cdb2c193David Howells * Unix names RESETHAND and NODEFER respectively.
76af170c5061dd78512c469e6e2d211980cdb2c193David Howells */
77af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NOCLDSTOP	0x00000001u
78af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NOCLDWAIT	0x00000002u
79af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_SIGINFO	0x00000004u
80af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_ONSTACK	0x08000000u
81af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_RESTART	0x10000000u
82af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NODEFER	0x40000000u
83af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_RESETHAND	0x80000000u
84af170c5061dd78512c469e6e2d211980cdb2c193David Howells
85af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_NOMASK	SA_NODEFER
86af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_ONESHOT	SA_RESETHAND
87af170c5061dd78512c469e6e2d211980cdb2c193David Howells
88af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SA_RESTORER	0x04000000
89af170c5061dd78512c469e6e2d211980cdb2c193David Howells
90af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define MINSIGSTKSZ	2048
91af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define SIGSTKSZ	8192
92af170c5061dd78512c469e6e2d211980cdb2c193David Howells
93af170c5061dd78512c469e6e2d211980cdb2c193David Howells#include <asm-generic/signal-defs.h>
94af170c5061dd78512c469e6e2d211980cdb2c193David Howells
95af170c5061dd78512c469e6e2d211980cdb2c193David Howells#ifndef __ASSEMBLY__
96af170c5061dd78512c469e6e2d211980cdb2c193David Howells
97af170c5061dd78512c469e6e2d211980cdb2c193David Howells
98af170c5061dd78512c469e6e2d211980cdb2c193David Howells# ifndef __KERNEL__
99af170c5061dd78512c469e6e2d211980cdb2c193David Howells/* Here we must cater to libcs that poke about in kernel headers.  */
100574c4866e33d648520a8bd5bf6f573ea6e554e88Al Viro#ifdef __i386__
101af170c5061dd78512c469e6e2d211980cdb2c193David Howells
102af170c5061dd78512c469e6e2d211980cdb2c193David Howellsstruct sigaction {
103af170c5061dd78512c469e6e2d211980cdb2c193David Howells	union {
104af170c5061dd78512c469e6e2d211980cdb2c193David Howells	  __sighandler_t _sa_handler;
105af170c5061dd78512c469e6e2d211980cdb2c193David Howells	  void (*_sa_sigaction)(int, struct siginfo *, void *);
106af170c5061dd78512c469e6e2d211980cdb2c193David Howells	} _u;
107af170c5061dd78512c469e6e2d211980cdb2c193David Howells	sigset_t sa_mask;
108af170c5061dd78512c469e6e2d211980cdb2c193David Howells	unsigned long sa_flags;
109af170c5061dd78512c469e6e2d211980cdb2c193David Howells	void (*sa_restorer)(void);
110af170c5061dd78512c469e6e2d211980cdb2c193David Howells};
111af170c5061dd78512c469e6e2d211980cdb2c193David Howells
112af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define sa_handler	_u._sa_handler
113af170c5061dd78512c469e6e2d211980cdb2c193David Howells#define sa_sigaction	_u._sa_sigaction
114af170c5061dd78512c469e6e2d211980cdb2c193David Howells
115af170c5061dd78512c469e6e2d211980cdb2c193David Howells#else /* __i386__ */
116af170c5061dd78512c469e6e2d211980cdb2c193David Howells
117af170c5061dd78512c469e6e2d211980cdb2c193David Howellsstruct sigaction {
118af170c5061dd78512c469e6e2d211980cdb2c193David Howells	__sighandler_t sa_handler;
119af170c5061dd78512c469e6e2d211980cdb2c193David Howells	unsigned long sa_flags;
120af170c5061dd78512c469e6e2d211980cdb2c193David Howells	__sigrestore_t sa_restorer;
121af170c5061dd78512c469e6e2d211980cdb2c193David Howells	sigset_t sa_mask;		/* mask last for extensibility */
122af170c5061dd78512c469e6e2d211980cdb2c193David Howells};
123af170c5061dd78512c469e6e2d211980cdb2c193David Howells
124af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* !__i386__ */
125574c4866e33d648520a8bd5bf6f573ea6e554e88Al Viro# endif /* ! __KERNEL__ */
126af170c5061dd78512c469e6e2d211980cdb2c193David Howells
127af170c5061dd78512c469e6e2d211980cdb2c193David Howellstypedef struct sigaltstack {
128af170c5061dd78512c469e6e2d211980cdb2c193David Howells	void __user *ss_sp;
129af170c5061dd78512c469e6e2d211980cdb2c193David Howells	int ss_flags;
130af170c5061dd78512c469e6e2d211980cdb2c193David Howells	size_t ss_size;
131af170c5061dd78512c469e6e2d211980cdb2c193David Howells} stack_t;
132af170c5061dd78512c469e6e2d211980cdb2c193David Howells
133af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* __ASSEMBLY__ */
134af170c5061dd78512c469e6e2d211980cdb2c193David Howells
135af170c5061dd78512c469e6e2d211980cdb2c193David Howells#endif /* _UAPI_ASM_X86_SIGNAL_H */
136