aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/signal.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2007-06-04 15:15:52 +1000
committerPaul Mackerras <paulus@samba.org>2007-06-14 22:29:58 +1000
commitf478f5430c8a599f46c41e8172a507a5772a6b69 (patch)
treece42723ed517a82a5e73b45cfe52a3bd338c1a4d /arch/powerpc/kernel/signal.h
parentdb277e9a67b9d81b9d6cd74edf0c3e1a0ef2aa4b (diff)
downloadkernel_samsung_smdk4412-f478f5430c8a599f46c41e8172a507a5772a6b69.zip
kernel_samsung_smdk4412-f478f5430c8a599f46c41e8172a507a5772a6b69.tar.gz
kernel_samsung_smdk4412-f478f5430c8a599f46c41e8172a507a5772a6b69.tar.bz2
[POWERPC] Consolidate do_signal
do_signal has exactly the same behaviour on 32bit and 64bit and 32bit compat on 64bit for handling 32bit signals. Consolidate all these into one common function in signal.c. The only odd left over is the try_to_free in the 32bit version that no other architecture has in mainline (only in i386 for some odd SuSE release). We should probably get rid of it in a separate patch. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/kernel/signal.h')
-rw-r--r--arch/powerpc/kernel/signal.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/signal.h b/arch/powerpc/kernel/signal.h
index 4b091d8..190d432 100644
--- a/arch/powerpc/kernel/signal.h
+++ b/arch/powerpc/kernel/signal.h
@@ -13,7 +13,17 @@
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
extern void restore_sigmask(sigset_t *set);
-extern void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka,
- int has_handler);
+
+extern int handle_signal32(unsigned long sig, struct k_sigaction *ka,
+ siginfo_t *info, sigset_t *oldset,
+ struct pt_regs *regs, unsigned long newsp);
+
+extern int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka,
+ siginfo_t *info, sigset_t *oldset,
+ struct pt_regs *regs, unsigned long newsp);
+
+extern int handle_rt_signal64(int signr, struct k_sigaction *ka,
+ siginfo_t *info, sigset_t *set,
+ struct pt_regs *regs);
#endif /* _POWERPC_ARCH_SIGNAL_H */