1#ifndef _ASM_M32R_SIGNAL_H
2#define _ASM_M32R_SIGNAL_H
3
4#include <linux/types.h>
5#include <linux/time.h>
6#include <linux/compiler.h>
7
8/* Avoid too many header ordering problems.  */
9struct siginfo;
10
11#ifdef __KERNEL__
12/* Most things should be clean enough to redefine this at will, if care
13   is taken to make libc match.  */
14
15#define _NSIG		64
16#define _NSIG_BPW	32
17#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
18
19typedef unsigned long old_sigset_t;		/* at least 32 bits */
20
21typedef struct {
22	unsigned long sig[_NSIG_WORDS];
23} sigset_t;
24
25#else
26/* Here we must cater to libcs that poke about in kernel headers.  */
27
28#define NSIG		32
29typedef unsigned long sigset_t;
30
31#endif /* __KERNEL__ */
32
33#define SIGHUP		 1
34#define SIGINT		 2
35#define SIGQUIT		 3
36#define SIGILL		 4
37#define SIGTRAP		 5
38#define SIGABRT		 6
39#define SIGIOT		 6
40#define SIGBUS		 7
41#define SIGFPE		 8
42#define SIGKILL		 9
43#define SIGUSR1		10
44#define SIGSEGV		11
45#define SIGUSR2		12
46#define SIGPIPE		13
47#define SIGALRM		14
48#define SIGTERM		15
49#define SIGSTKFLT	16
50#define SIGCHLD		17
51#define SIGCONT		18
52#define SIGSTOP		19
53#define SIGTSTP		20
54#define SIGTTIN		21
55#define SIGTTOU		22
56#define SIGURG		23
57#define SIGXCPU		24
58#define SIGXFSZ		25
59#define SIGVTALRM	26
60#define SIGPROF		27
61#define SIGWINCH	28
62#define SIGIO		29
63#define SIGPOLL		SIGIO
64/*
65#define SIGLOST		29
66*/
67#define SIGPWR		30
68#define SIGSYS		31
69#define	SIGUNUSED	31
70
71/* These should not be considered constants from userland.  */
72#define SIGRTMIN	32
73#define SIGRTMAX	_NSIG
74
75/*
76 * SA_FLAGS values:
77 *
78 * SA_ONSTACK indicates that a registered stack_t will be used.
79 * SA_RESTART flag to get restarting signals (which were the default long ago)
80 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
81 * SA_RESETHAND clears the handler when the signal is delivered.
82 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
83 * SA_NODEFER prevents the current signal from being masked in the handler.
84 *
85 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
86 * Unix names RESETHAND and NODEFER respectively.
87 */
88#define SA_NOCLDSTOP	0x00000001u
89#define SA_NOCLDWAIT	0x00000002u
90#define SA_SIGINFO	0x00000004u
91#define SA_ONSTACK	0x08000000u
92#define SA_RESTART	0x10000000u
93#define SA_NODEFER	0x40000000u
94#define SA_RESETHAND	0x80000000u
95
96#define SA_NOMASK	SA_NODEFER
97#define SA_ONESHOT	SA_RESETHAND
98
99#define SA_RESTORER	0x04000000
100
101/*
102 * sigaltstack controls
103 */
104#define SS_ONSTACK	1
105#define SS_DISABLE	2
106
107#define MINSIGSTKSZ	2048
108#define SIGSTKSZ	8192
109
110#include <asm-generic/signal.h>
111
112#ifdef __KERNEL__
113struct old_sigaction {
114	__sighandler_t sa_handler;
115	old_sigset_t sa_mask;
116	unsigned long sa_flags;
117	__sigrestore_t sa_restorer;
118};
119
120struct sigaction {
121	__sighandler_t sa_handler;
122	unsigned long sa_flags;
123	__sigrestore_t sa_restorer;
124	sigset_t sa_mask;		/* mask last for extensibility */
125};
126
127struct k_sigaction {
128	struct sigaction sa;
129};
130#else
131/* Here we must cater to libcs that poke about in kernel headers.  */
132
133struct sigaction {
134	union {
135	  __sighandler_t _sa_handler;
136	  void (*_sa_sigaction)(int, struct siginfo *, void *);
137	} _u;
138	sigset_t sa_mask;
139	unsigned long sa_flags;
140	void (*sa_restorer)(void);
141};
142
143#define sa_handler	_u._sa_handler
144#define sa_sigaction	_u._sa_sigaction
145
146#endif /* __KERNEL__ */
147
148typedef struct sigaltstack {
149	void __user *ss_sp;
150	int ss_flags;
151	size_t ss_size;
152} stack_t;
153
154#ifdef __KERNEL__
155#include <asm/sigcontext.h>
156
157#undef __HAVE_ARCH_SIG_BITOPS
158
159struct pt_regs;
160extern int FASTCALL(do_signal(struct pt_regs *regs, sigset_t *oldset));
161
162#define ptrace_signal_deliver(regs, cookie)	do { } while (0)
163
164#endif /* __KERNEL__ */
165
166#endif  /* _ASM_M32R_SIGNAL_H */
167