110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#ifndef _UAPI_M68K_SIGNAL_H
210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define _UAPI_M68K_SIGNAL_H
310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#include <linux/types.h>
510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells/* Avoid too many header ordering problems.  */
710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howellsstruct siginfo;
810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#ifndef __KERNEL__
1010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells/* Here we must cater to libcs that poke about in kernel headers.  */
1110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
1210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define NSIG		32
1310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howellstypedef unsigned long sigset_t;
1410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
1510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#endif /* __KERNEL__ */
1610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
1710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGHUP		 1
1810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGINT		 2
1910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGQUIT		 3
2010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGILL		 4
2110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGTRAP		 5
2210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGABRT		 6
2310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGIOT		 6
2410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGBUS		 7
2510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGFPE		 8
2610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGKILL		 9
2710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGUSR1		10
2810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGSEGV		11
2910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGUSR2		12
3010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGPIPE		13
3110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGALRM		14
3210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGTERM		15
3310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGSTKFLT	16
3410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGCHLD		17
3510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGCONT		18
3610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGSTOP		19
3710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGTSTP		20
3810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGTTIN		21
3910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGTTOU		22
4010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGURG		23
4110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGXCPU		24
4210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGXFSZ		25
4310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGVTALRM	26
4410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGPROF		27
4510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGWINCH	28
4610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGIO		29
4710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGPOLL		SIGIO
4810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells/*
4910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGLOST		29
5010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells*/
5110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGPWR		30
5210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGSYS		31
5310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define	SIGUNUSED	31
5410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
5510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells/* These should not be considered constants from userland.  */
5610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGRTMIN	32
5710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGRTMAX	_NSIG
5810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
5910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells/*
6010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_FLAGS values:
6110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells *
6210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_ONSTACK indicates that a registered stack_t will be used.
6310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_RESTART flag to get restarting signals (which were the default long ago)
6410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
6510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_RESETHAND clears the handler when the signal is delivered.
6610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
6710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_NODEFER prevents the current signal from being masked in the handler.
6810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells *
6910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
7010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells * Unix names RESETHAND and NODEFER respectively.
7110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells */
7210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_NOCLDSTOP	0x00000001
7310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_NOCLDWAIT	0x00000002
7410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_SIGINFO	0x00000004
7510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_ONSTACK	0x08000000
7610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_RESTART	0x10000000
7710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_NODEFER	0x40000000
7810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_RESETHAND	0x80000000
7910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
8010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_NOMASK	SA_NODEFER
8110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SA_ONESHOT	SA_RESETHAND
8210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
8310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define MINSIGSTKSZ	2048
8410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define SIGSTKSZ	8192
8510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
8610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#include <asm-generic/signal-defs.h>
8710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
8810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#ifndef __KERNEL__
8910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells/* Here we must cater to libcs that poke about in kernel headers.  */
9010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
9110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howellsstruct sigaction {
9210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	union {
9310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	  __sighandler_t _sa_handler;
9410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	  void (*_sa_sigaction)(int, struct siginfo *, void *);
9510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	} _u;
9610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	sigset_t sa_mask;
9710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	unsigned long sa_flags;
9810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	void (*sa_restorer)(void);
9910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells};
10010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
10110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define sa_handler	_u._sa_handler
10210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#define sa_sigaction	_u._sa_sigaction
10310b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
10410b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#endif /* __KERNEL__ */
10510b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
10610b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howellstypedef struct sigaltstack {
10710b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	void __user *ss_sp;
10810b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	int ss_flags;
10910b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells	size_t ss_size;
11010b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells} stack_t;
11110b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells
11210b3a979347d4aba7de19e8d33eb8b87fe2a11ddDavid Howells#endif /* _UAPI_M68K_SIGNAL_H */
113