1d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#ifndef _UAPI_ASMARM_SIGNAL_H
2d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define _UAPI_ASMARM_SIGNAL_H
3d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
4d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#include <linux/types.h>
5d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
6d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* Avoid too many header ordering problems.  */
7d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengstruct siginfo;
8d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
9d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#ifndef __KERNEL__
10d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* Here we must cater to libcs that poke about in kernel headers.  */
11d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
12d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define NSIG		32
13d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengtypedef unsigned long sigset_t;
14d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
15d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#endif /* __KERNEL__ */
16d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
17d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGHUP		 1
18d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGINT		 2
19d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGQUIT		 3
20d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGILL		 4
21d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTRAP		 5
22d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGABRT		 6
23d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGIOT		 6
24d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGBUS		 7
25d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGFPE		 8
26d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGKILL		 9
27d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGUSR1		10
28d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSEGV		11
29d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGUSR2		12
30d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPIPE		13
31d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGALRM		14
32d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTERM		15
33d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSTKFLT	16
34d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGCHLD		17
35d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGCONT		18
36d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSTOP		19
37d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTSTP		20
38d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTTIN		21
39d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGTTOU		22
40d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGURG		23
41d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGXCPU		24
42d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGXFSZ		25
43d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGVTALRM	26
44d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPROF		27
45d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGWINCH	28
46d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGIO		29
47d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPOLL		SIGIO
48d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/*
49d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGLOST		29
50d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng*/
51d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGPWR		30
52d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSYS		31
53d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define	SIGUNUSED	31
54d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
55d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* These should not be considered constants from userland.  */
56d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGRTMIN	32
57d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGRTMAX	_NSIG
58d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
59d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSWI		32
60d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
61d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/*
62d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_FLAGS values:
63d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng *
64d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_NOCLDSTOP		flag to turn off SIGCHLD when children stop.
65d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_NOCLDWAIT		flag on SIGCHLD to inhibit zombies.
66d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_SIGINFO		deliver the signal with SIGINFO structs
67d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_THIRTYTWO		delivers the signal in 32-bit mode, even if the task
68d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng *			is running in 26-bit.
69d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_ONSTACK		allows alternate signal stacks (see sigaltstack(2)).
70d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_RESTART		flag to get restarting signals (which were the default long ago)
71d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_NODEFER		prevents the current signal from being masked in the handler.
72d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_RESETHAND		clears the handler when the signal is delivered.
73d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng *
74d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
75d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng * Unix names RESETHAND and NODEFER respectively.
76d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng */
77d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NOCLDSTOP	0x00000001
78d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NOCLDWAIT	0x00000002
79d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_SIGINFO	0x00000004
80d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_THIRTYTWO	0x02000000
81d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_RESTORER	0x04000000
82d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_ONSTACK	0x08000000
83d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_RESTART	0x10000000
84d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NODEFER	0x40000000
85d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_RESETHAND	0x80000000
86d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
87d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_NOMASK	SA_NODEFER
88d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SA_ONESHOT	SA_RESETHAND
89d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
90d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define MINSIGSTKSZ	2048
91d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define SIGSTKSZ	8192
92d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
93d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#include <asm-generic/signal-defs.h>
94d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
95d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#ifndef __KERNEL__
96d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng/* Here we must cater to libcs that poke about in kernel headers.  */
97d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
98d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengstruct sigaction {
99d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	union {
100d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	  __sighandler_t _sa_handler;
101d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	  void (*_sa_sigaction)(int, struct siginfo *, void *);
102d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	} _u;
103d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	sigset_t sa_mask;
104d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	unsigned long sa_flags;
105d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	void (*sa_restorer)(void);
106d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng};
107d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
108d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define sa_handler	_u._sa_handler
109d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#define sa_sigaction	_u._sa_sigaction
110d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
111d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#endif /* __KERNEL__ */
112d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
113d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Chengtypedef struct sigaltstack {
114d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	void __user *ss_sp;
115d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	int ss_flags;
116d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng	size_t ss_size;
117d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng} stack_t;
118d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
119d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng
120d1c09396e629a9fef1939f7ab7dfb69455d82fb8Ben Cheng#endif /* _UAPI_ASMARM_SIGNAL_H */
121