183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells/*
283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * include/asm-xtensa/signal.h
383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells *
483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * Swiped from SH.
583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells *
683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * This file is subject to the terms and conditions of the GNU General Public
783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * License.  See the file "COPYING" in the main directory of this archive
883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * for more details.
983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells *
1083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * Copyright (C) 2001 - 2005 Tensilica Inc.
1183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells */
1283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
1383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#ifndef _UAPI_XTENSA_SIGNAL_H
1483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define _UAPI_XTENSA_SIGNAL_H
1583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
1683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
1783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define _NSIG		64
1883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define _NSIG_BPW	32
1983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
2083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
2183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#ifndef __ASSEMBLY__
2283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
2383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#include <linux/types.h>
2483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
2583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells/* Avoid too many header ordering problems.  */
2683596729adbca4ff3b0273de22e166c64aea49ecDavid Howellsstruct siginfo;
2783596729adbca4ff3b0273de22e166c64aea49ecDavid Howellstypedef unsigned long old_sigset_t;		/* at least 32 bits */
2883596729adbca4ff3b0273de22e166c64aea49ecDavid Howellstypedef struct {
2983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	unsigned long sig[_NSIG_WORDS];
3083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells} sigset_t;
3183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
3283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#endif
3383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
3483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGHUP		 1
3583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGINT		 2
3683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGQUIT		 3
3783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGILL		 4
3883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGTRAP		 5
3983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGABRT		 6
4083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGIOT		 6
4183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGBUS		 7
4283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGFPE		 8
4383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGKILL		 9
4483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGUSR1		10
4583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGSEGV		11
4683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGUSR2		12
4783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGPIPE		13
4883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGALRM		14
4983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGTERM		15
5083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGSTKFLT	16
5183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGCHLD		17
5283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGCONT		18
5383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGSTOP		19
5483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGTSTP		20
5583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGTTIN		21
5683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGTTOU		22
5783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGURG		23
5883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGXCPU		24
5983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGXFSZ		25
6083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGVTALRM	26
6183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGPROF		27
6283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGWINCH	28
6383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGIO		29
6483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGPOLL		SIGIO
6583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells/* #define SIGLOST		29 */
6683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGPWR		30
6783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGSYS		31
6883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define	SIGUNUSED	31
6983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
7083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells/* These should not be considered constants from userland.  */
7183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGRTMIN	32
7283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGRTMAX	(_NSIG-1)
7383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
7483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells/*
7583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_FLAGS values:
7683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells *
7783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_ONSTACK indicates that a registered stack_t will be used.
7883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_RESTART flag to get restarting signals (which were the default long ago)
7983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
8083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_RESETHAND clears the handler when the signal is delivered.
8183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
8283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_NODEFER prevents the current signal from being masked in the handler.
8383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells *
8483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
8583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells * Unix names RESETHAND and NODEFER respectively.
8683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells */
8783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_NOCLDSTOP	0x00000001
8883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_NOCLDWAIT	0x00000002 /* not supported yet */
8983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_SIGINFO	0x00000004
9083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_ONSTACK	0x08000000
9183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_RESTART	0x10000000
9283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_NODEFER	0x40000000
9383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_RESETHAND	0x80000000
9483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
9583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_NOMASK	SA_NODEFER
9683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_ONESHOT	SA_RESETHAND
9783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
9883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SA_RESTORER	0x04000000
9983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
10083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define MINSIGSTKSZ	2048
10183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define SIGSTKSZ	8192
10283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
10383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#ifndef __ASSEMBLY__
10483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
1055d9f36b94db82fb630acdc38ac380af4cf107f8eMax Filippov#include <asm-generic/signal-defs.h>
10683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
10783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#ifndef __KERNEL__
10883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
10983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells/* Here we must cater to libcs that poke about in kernel headers.  */
11083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
11183596729adbca4ff3b0273de22e166c64aea49ecDavid Howellsstruct sigaction {
11283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	union {
11383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	  __sighandler_t _sa_handler;
11483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	  void (*_sa_sigaction)(int, struct siginfo *, void *);
11583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	} _u;
11683596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	sigset_t sa_mask;
11783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	unsigned long sa_flags;
11883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	void (*sa_restorer)(void);
11983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells};
12083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
12183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define sa_handler	_u._sa_handler
12283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#define sa_sigaction	_u._sa_sigaction
12383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
12483596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#endif /* __KERNEL__ */
12583596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
12683596729adbca4ff3b0273de22e166c64aea49ecDavid Howellstypedef struct sigaltstack {
12783596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	void *ss_sp;
12883596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	int ss_flags;
12983596729adbca4ff3b0273de22e166c64aea49ecDavid Howells	size_t ss_size;
13083596729adbca4ff3b0273de22e166c64aea49ecDavid Howells} stack_t;
13183596729adbca4ff3b0273de22e166c64aea49ecDavid Howells
13283596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#endif	/* __ASSEMBLY__ */
13383596729adbca4ff3b0273de22e166c64aea49ecDavid Howells#endif /* _UAPI_XTENSA_SIGNAL_H */
134