~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/m68k/include/asm/signal.h

Version: ~ [ linux-6.4-rc3 ] ~ [ linux-6.3.4 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.30 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.113 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.180 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.243 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.283 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.315 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #ifndef _M68K_SIGNAL_H
  2 #define _M68K_SIGNAL_H
  3 
  4 #include <linux/types.h>
  5 
  6 /* Avoid too many header ordering problems.  */
  7 struct 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 
 17 typedef unsigned long old_sigset_t;             /* at least 32 bits */
 18 
 19 typedef 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
 27 typedef 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__
109 struct 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 
116 struct 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 #define __ARCH_HAS_SA_RESTORER
123 
124 struct k_sigaction {
125         struct sigaction sa;
126 };
127 #else
128 /* Here we must cater to libcs that poke about in kernel headers.  */
129 
130 struct sigaction {
131         union {
132           __sighandler_t _sa_handler;
133           void (*_sa_sigaction)(int, struct siginfo *, void *);
134         } _u;
135         sigset_t sa_mask;
136         unsigned long sa_flags;
137         void (*sa_restorer)(void);
138 };
139 
140 #define sa_handler      _u._sa_handler
141 #define sa_sigaction    _u._sa_sigaction
142 
143 #endif /* __KERNEL__ */
144 
145 typedef struct sigaltstack {
146         void __user *ss_sp;
147         int ss_flags;
148         size_t ss_size;
149 } stack_t;
150 
151 #ifdef __KERNEL__
152 #include <asm/sigcontext.h>
153 
154 #ifndef __uClinux__
155 #define __HAVE_ARCH_SIG_BITOPS
156 
157 static inline void sigaddset(sigset_t *set, int _sig)
158 {
159         asm ("bfset %0{%1,#1}"
160                 : "+od" (*set)
161                 : "id" ((_sig - 1) ^ 31)
162                 : "cc");
163 }
164 
165 static inline void sigdelset(sigset_t *set, int _sig)
166 {
167         asm ("bfclr %0{%1,#1}"
168                 : "+od" (*set)
169                 : "id" ((_sig - 1) ^ 31)
170                 : "cc");
171 }
172 
173 static inline int __const_sigismember(sigset_t *set, int _sig)
174 {
175         unsigned long sig = _sig - 1;
176         return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW));
177 }
178 
179 static inline int __gen_sigismember(sigset_t *set, int _sig)
180 {
181         int ret;
182         asm ("bfextu %1{%2,#1},%0"
183                 : "=d" (ret)
184                 : "od" (*set), "id" ((_sig-1) ^ 31)
185                 : "cc");
186         return ret;
187 }
188 
189 #define sigismember(set,sig)                    \
190         (__builtin_constant_p(sig) ?            \
191          __const_sigismember(set,sig) :         \
192          __gen_sigismember(set,sig))
193 
194 static inline int sigfindinword(unsigned long word)
195 {
196         asm ("bfffo %1{#0,#0},%0"
197                 : "=d" (word)
198                 : "d" (word & -word)
199                 : "cc");
200         return word ^ 31;
201 }
202 
203 struct pt_regs;
204 extern void ptrace_signal_deliver(struct pt_regs *regs, void *cookie);
205 
206 #else
207 
208 #undef __HAVE_ARCH_SIG_BITOPS
209 #define ptrace_signal_deliver(regs, cookie) do { } while (0)
210 
211 #endif /* __uClinux__ */
212 #endif /* __KERNEL__ */
213 
214 #endif /* _M68K_SIGNAL_H */
215 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp