Linux Audio

Check our new training course

Loading...
v6.8
 1/* SPDX-License-Identifier: GPL-2.0 */
 2#ifndef _M68K_SIGNAL_H
 3#define _M68K_SIGNAL_H
 4
 5#include <uapi/asm/signal.h>
 6
 
 
 
 
 7/* Most things should be clean enough to redefine this at will, if care
 8   is taken to make libc match.  */
 9
10#define _NSIG		64
11#define _NSIG_BPW	32
12#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
13
14typedef unsigned long old_sigset_t;		/* at least 32 bits */
15
16typedef struct {
17	unsigned long sig[_NSIG_WORDS];
18} sigset_t;
19
20#define __ARCH_HAS_SA_RESTORER
 
 
 
 
 
 
21
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22#include <asm/sigcontext.h>
23
24#ifndef CONFIG_CPU_HAS_NO_BITFIELDS
25#define __HAVE_ARCH_SIG_BITOPS
26
27static inline void sigaddset(sigset_t *set, int _sig)
28{
29	asm ("bfset %0{%1,#1}"
30		: "+o" (*set)
31		: "id" ((_sig - 1) ^ 31)
32		: "cc");
33}
34
35static inline void sigdelset(sigset_t *set, int _sig)
36{
37	asm ("bfclr %0{%1,#1}"
38		: "+o" (*set)
39		: "id" ((_sig - 1) ^ 31)
40		: "cc");
41}
42
43static inline int __const_sigismember(sigset_t *set, int _sig)
44{
45	unsigned long sig = _sig - 1;
46	return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
47}
48
49static inline int __gen_sigismember(sigset_t *set, int _sig)
50{
51	int ret;
52	asm ("bfextu %1{%2,#1},%0"
53		: "=d" (ret)
54		: "o" (*set), "id" ((_sig-1) ^ 31)
55		: "cc");
56	return ret;
57}
58
59#define sigismember(set,sig)			\
60	(__builtin_constant_p(sig) ?		\
61	 __const_sigismember(set,sig) :		\
62	 __gen_sigismember(set,sig))
63
 
 
 
 
 
 
 
 
 
64#endif /* !CONFIG_CPU_HAS_NO_BITFIELDS */
65
 
 
 
 
 
 
 
 
66#endif /* _M68K_SIGNAL_H */
v3.1
 
  1#ifndef _M68K_SIGNAL_H
  2#define _M68K_SIGNAL_H
  3
  4#include <linux/types.h>
  5
  6/* Avoid too many header ordering problems.  */
  7struct siginfo;
  8
  9#ifdef __KERNEL__
 10/* Most things should be clean enough to redefine this at will, if care
 11   is taken to make libc match.  */
 12
 13#define _NSIG		64
 14#define _NSIG_BPW	32
 15#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
 16
 17typedef unsigned long old_sigset_t;		/* at least 32 bits */
 18
 19typedef struct {
 20	unsigned long sig[_NSIG_WORDS];
 21} sigset_t;
 22
 23#else
 24/* Here we must cater to libcs that poke about in kernel headers.  */
 25
 26#define NSIG		32
 27typedef unsigned long sigset_t;
 28
 29#endif /* __KERNEL__ */
 30
 31#define SIGHUP		 1
 32#define SIGINT		 2
 33#define SIGQUIT		 3
 34#define SIGILL		 4
 35#define SIGTRAP		 5
 36#define SIGABRT		 6
 37#define SIGIOT		 6
 38#define SIGBUS		 7
 39#define SIGFPE		 8
 40#define SIGKILL		 9
 41#define SIGUSR1		10
 42#define SIGSEGV		11
 43#define SIGUSR2		12
 44#define SIGPIPE		13
 45#define SIGALRM		14
 46#define SIGTERM		15
 47#define SIGSTKFLT	16
 48#define SIGCHLD		17
 49#define SIGCONT		18
 50#define SIGSTOP		19
 51#define SIGTSTP		20
 52#define SIGTTIN		21
 53#define SIGTTOU		22
 54#define SIGURG		23
 55#define SIGXCPU		24
 56#define SIGXFSZ		25
 57#define SIGVTALRM	26
 58#define SIGPROF		27
 59#define SIGWINCH	28
 60#define SIGIO		29
 61#define SIGPOLL		SIGIO
 62/*
 63#define SIGLOST		29
 64*/
 65#define SIGPWR		30
 66#define SIGSYS		31
 67#define	SIGUNUSED	31
 68
 69/* These should not be considered constants from userland.  */
 70#define SIGRTMIN	32
 71#define SIGRTMAX	_NSIG
 72
 73/*
 74 * SA_FLAGS values:
 75 *
 76 * SA_ONSTACK indicates that a registered stack_t will be used.
 77 * SA_RESTART flag to get restarting signals (which were the default long ago)
 78 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
 79 * SA_RESETHAND clears the handler when the signal is delivered.
 80 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
 81 * SA_NODEFER prevents the current signal from being masked in the handler.
 82 *
 83 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
 84 * Unix names RESETHAND and NODEFER respectively.
 85 */
 86#define SA_NOCLDSTOP	0x00000001
 87#define SA_NOCLDWAIT	0x00000002
 88#define SA_SIGINFO	0x00000004
 89#define SA_ONSTACK	0x08000000
 90#define SA_RESTART	0x10000000
 91#define SA_NODEFER	0x40000000
 92#define SA_RESETHAND	0x80000000
 93
 94#define SA_NOMASK	SA_NODEFER
 95#define SA_ONESHOT	SA_RESETHAND
 96
 97/*
 98 * sigaltstack controls
 99 */
100#define SS_ONSTACK	1
101#define SS_DISABLE	2
102
103#define MINSIGSTKSZ	2048
104#define SIGSTKSZ	8192
105
106#include <asm-generic/signal-defs.h>
107
108#ifdef __KERNEL__
109struct old_sigaction {
110	__sighandler_t sa_handler;
111	old_sigset_t sa_mask;
112	unsigned long sa_flags;
113	__sigrestore_t sa_restorer;
114};
115
116struct sigaction {
117	__sighandler_t sa_handler;
118	unsigned long sa_flags;
119	__sigrestore_t sa_restorer;
120	sigset_t sa_mask;		/* mask last for extensibility */
121};
122
123struct k_sigaction {
124	struct sigaction sa;
125};
126#else
127/* Here we must cater to libcs that poke about in kernel headers.  */
128
129struct sigaction {
130	union {
131	  __sighandler_t _sa_handler;
132	  void (*_sa_sigaction)(int, struct siginfo *, void *);
133	} _u;
134	sigset_t sa_mask;
135	unsigned long sa_flags;
136	void (*sa_restorer)(void);
137};
138
139#define sa_handler	_u._sa_handler
140#define sa_sigaction	_u._sa_sigaction
141
142#endif /* __KERNEL__ */
143
144typedef struct sigaltstack {
145	void __user *ss_sp;
146	int ss_flags;
147	size_t ss_size;
148} stack_t;
149
150#ifdef __KERNEL__
151#include <asm/sigcontext.h>
152
153#ifndef CONFIG_CPU_HAS_NO_BITFIELDS
154#define __HAVE_ARCH_SIG_BITOPS
155
156static inline void sigaddset(sigset_t *set, int _sig)
157{
158	asm ("bfset %0{%1,#1}"
159		: "+od" (*set)
160		: "id" ((_sig - 1) ^ 31)
161		: "cc");
162}
163
164static inline void sigdelset(sigset_t *set, int _sig)
165{
166	asm ("bfclr %0{%1,#1}"
167		: "+od" (*set)
168		: "id" ((_sig - 1) ^ 31)
169		: "cc");
170}
171
172static inline int __const_sigismember(sigset_t *set, int _sig)
173{
174	unsigned long sig = _sig - 1;
175	return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
176}
177
178static inline int __gen_sigismember(sigset_t *set, int _sig)
179{
180	int ret;
181	asm ("bfextu %1{%2,#1},%0"
182		: "=d" (ret)
183		: "od" (*set), "id" ((_sig-1) ^ 31)
184		: "cc");
185	return ret;
186}
187
188#define sigismember(set,sig)			\
189	(__builtin_constant_p(sig) ?		\
190	 __const_sigismember(set,sig) :		\
191	 __gen_sigismember(set,sig))
192
193static inline int sigfindinword(unsigned long word)
194{
195	asm ("bfffo %1{#0,#0},%0"
196		: "=d" (word)
197		: "d" (word & -word)
198		: "cc");
199	return word ^ 31;
200}
201
202#endif /* !CONFIG_CPU_HAS_NO_BITFIELDS */
203
204#ifdef __uClinux__
205#define ptrace_signal_deliver(regs, cookie) do { } while (0)
206#else
207struct pt_regs;
208extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie);
209#endif /* __uClinux__ */
210
211#endif /* __KERNEL__ */
212#endif /* _M68K_SIGNAL_H */