10437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef _UAPI_ASM_X86_SIGNAL_H
20437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _UAPI_ASM_X86_SIGNAL_H
30437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
40437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef __ASSEMBLY__
50437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <linux/types.h>
60437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <linux/time.h>
70437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <linux/compiler.h>
80437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
90437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Avoid too many header ordering problems.  */
100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct siginfo;
110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef __KERNEL__
130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Here we must cater to libcs that poke about in kernel headers.  */
140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define NSIG		32
160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferristypedef unsigned long sigset_t;
170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* __KERNEL__ */
190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* __ASSEMBLY__ */
200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGHUP		 1
230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGINT		 2
240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGQUIT		 3
250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGILL		 4
260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGTRAP		 5
270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGABRT		 6
280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGIOT		 6
290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGBUS		 7
300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGFPE		 8
310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGKILL		 9
320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGUSR1		10
330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGSEGV		11
340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGUSR2		12
350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGPIPE		13
360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGALRM		14
370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGTERM		15
380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGSTKFLT	16
390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGCHLD		17
400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGCONT		18
410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGSTOP		19
420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGTSTP		20
430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGTTIN		21
440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGTTOU		22
450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGURG		23
460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGXCPU		24
470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGXFSZ		25
480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGVTALRM	26
490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGPROF		27
500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGWINCH	28
510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGIO		29
520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGPOLL		SIGIO
530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/*
540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGLOST		29
550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris*/
560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGPWR		30
570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGSYS		31
580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define	SIGUNUSED	31
590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* These should not be considered constants from userland.  */
610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGRTMIN	32
620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGRTMAX	_NSIG
630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/*
650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_FLAGS values:
660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris *
670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_ONSTACK indicates that a registered stack_t will be used.
680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_RESTART flag to get restarting signals (which were the default long ago)
690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_RESETHAND clears the handler when the signal is delivered.
710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_NODEFER prevents the current signal from being masked in the handler.
730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris *
740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris * Unix names RESETHAND and NODEFER respectively.
760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris */
770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_NOCLDSTOP	0x00000001u
780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_NOCLDWAIT	0x00000002u
790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_SIGINFO	0x00000004u
800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_ONSTACK	0x08000000u
810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_RESTART	0x10000000u
820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_NODEFER	0x40000000u
830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_RESETHAND	0x80000000u
840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_NOMASK	SA_NODEFER
860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_ONESHOT	SA_RESETHAND
870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
880437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SA_RESTORER	0x04000000
890437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
900437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define MINSIGSTKSZ	2048
910437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SIGSTKSZ	8192
920437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
930437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <asm-generic/signal-defs.h>
940437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
950437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef __ASSEMBLY__
960437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
970437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
980437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris# ifndef __KERNEL__
990437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Here we must cater to libcs that poke about in kernel headers.  */
1000437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifdef __i386__
1010437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1020437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct sigaction {
1030437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	union {
1040437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	  __sighandler_t _sa_handler;
1050437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	  void (*_sa_sigaction)(int, struct siginfo *, void *);
1060437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	} _u;
1070437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	sigset_t sa_mask;
1080437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	unsigned long sa_flags;
1090437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	void (*sa_restorer)(void);
1100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris};
1110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define sa_handler	_u._sa_handler
1130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define sa_sigaction	_u._sa_sigaction
1140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#else /* __i386__ */
1160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferrisstruct sigaction {
1180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	__sighandler_t sa_handler;
1190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	unsigned long sa_flags;
1200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	__sigrestore_t sa_restorer;
1210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	sigset_t sa_mask;		/* mask last for extensibility */
1220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris};
1230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* !__i386__ */
1250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris# endif /* ! __KERNEL__ */
1260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferristypedef struct sigaltstack {
1280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	void __user *ss_sp;
1290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	int ss_flags;
1300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris	size_t ss_size;
1310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris} stack_t;
1320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* __ASSEMBLY__ */
1340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris
1350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* _UAPI_ASM_X86_SIGNAL_H */
136