diff options
Diffstat (limited to 'include/linux/signal.h')
-rw-r--r-- | include/linux/signal.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/include/linux/signal.h b/include/linux/signal.h index 2ac423bdb676..c9e65360c49a 100644 --- a/include/linux/signal.h +++ b/include/linux/signal.h | |||
@@ -63,11 +63,6 @@ static inline int sigismember(sigset_t *set, int _sig) | |||
63 | return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); | 63 | return 1 & (set->sig[sig / _NSIG_BPW] >> (sig % _NSIG_BPW)); |
64 | } | 64 | } |
65 | 65 | ||
66 | static inline int sigfindinword(unsigned long word) | ||
67 | { | ||
68 | return ffz(~word); | ||
69 | } | ||
70 | |||
71 | #endif /* __HAVE_ARCH_SIG_BITOPS */ | 66 | #endif /* __HAVE_ARCH_SIG_BITOPS */ |
72 | 67 | ||
73 | static inline int sigisemptyset(sigset_t *set) | 68 | static inline int sigisemptyset(sigset_t *set) |
@@ -289,6 +284,22 @@ extern int get_signal_to_deliver(siginfo_t *info, struct k_sigaction *return_ka, | |||
289 | extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping); | 284 | extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping); |
290 | extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping); | 285 | extern void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, struct pt_regs *regs, int stepping); |
291 | extern void exit_signals(struct task_struct *tsk); | 286 | extern void exit_signals(struct task_struct *tsk); |
287 | extern void kernel_sigaction(int, __sighandler_t); | ||
288 | |||
289 | static inline void allow_signal(int sig) | ||
290 | { | ||
291 | /* | ||
292 | * Kernel threads handle their own signals. Let the signal code | ||
293 | * know it'll be handled, so that they don't get converted to | ||
294 | * SIGKILL or just silently dropped. | ||
295 | */ | ||
296 | kernel_sigaction(sig, (__force __sighandler_t)2); | ||
297 | } | ||
298 | |||
299 | static inline void disallow_signal(int sig) | ||
300 | { | ||
301 | kernel_sigaction(sig, SIG_IGN); | ||
302 | } | ||
292 | 303 | ||
293 | /* | 304 | /* |
294 | * Eventually that'll replace get_signal_to_deliver(); macro for now, | 305 | * Eventually that'll replace get_signal_to_deliver(); macro for now, |