summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2002-05-28 05:52:39 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-05-28 05:52:39 -0700
commite9946e06433a1225296329310ebd4a393c5a7062 (patch)
tree8588b128e72b6726d44997e98351162ee3eef9a1 /include
parent6ba85d4cc98d7db66e4311c1d0fa3daea1894cb8 (diff)
[PATCH] consolidate do_signal
11 out of our 17 architectures have basically the same code in arch/../kernel/signal.c:do_signal. This patch creates a common function for that bit of code and uses it in the places it can be. The 2.5.15 version of this patch builds and runs on i386 and PPC and has been briefly looked at by the CRIS, PARISC, PPC64 and x86_64 maintainers. As a bonus, this fixes the "ignore SIGURG" bug for 9 more architectures (i386 and PPC already were fixed).
Diffstat (limited to 'include')
-rw-r--r--include/asm-alpha/signal.h3
-rw-r--r--include/asm-arm/signal.h2
-rw-r--r--include/asm-ia64/signal.h2
-rw-r--r--include/asm-m68k/signal.h2
-rw-r--r--include/asm-sparc/signal.h2
-rw-r--r--include/asm-sparc64/signal.h3
-rw-r--r--include/linux/signal.h4
7 files changed, 18 insertions, 0 deletions
diff --git a/include/asm-alpha/signal.h b/include/asm-alpha/signal.h
index 501f35ea5c17..65101218d1df 100644
--- a/include/asm-alpha/signal.h
+++ b/include/asm-alpha/signal.h
@@ -185,6 +185,9 @@ struct sigstack {
#ifdef __KERNEL__
#include <asm/sigcontext.h>
+
+#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+
#endif
#endif
diff --git a/include/asm-arm/signal.h b/include/asm-arm/signal.h
index 1bc7f174eee2..dc745fcabe5c 100644
--- a/include/asm-arm/signal.h
+++ b/include/asm-arm/signal.h
@@ -187,6 +187,8 @@ typedef struct sigaltstack {
#define sigmask(sig) (1UL << ((sig) - 1))
+#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+
#endif
#endif
diff --git a/include/asm-ia64/signal.h b/include/asm-ia64/signal.h
index d5a61fea037e..f52c035391bd 100644
--- a/include/asm-ia64/signal.h
+++ b/include/asm-ia64/signal.h
@@ -166,6 +166,8 @@ struct k_sigaction {
# include <asm/sigcontext.h>
+#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+
#endif /* __KERNEL__ */
# endif /* !__ASSEMBLY__ */
diff --git a/include/asm-m68k/signal.h b/include/asm-m68k/signal.h
index 228e95c97b53..c777dcfc6b25 100644
--- a/include/asm-m68k/signal.h
+++ b/include/asm-m68k/signal.h
@@ -215,6 +215,8 @@ extern __inline__ int sigfindinword(unsigned long word)
return word ^ 31;
}
+#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+
#endif /* __KERNEL__ */
#endif /* _M68K_SIGNAL_H */
diff --git a/include/asm-sparc/signal.h b/include/asm-sparc/signal.h
index 51d75eee11b0..33c8ed0b0349 100644
--- a/include/asm-sparc/signal.h
+++ b/include/asm-sparc/signal.h
@@ -216,6 +216,8 @@ typedef struct sigaltstack {
size_t ss_size;
} stack_t;
+#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+
#endif /* !(__ASSEMBLY__) */
#endif /* !(_ASMSPARC_SIGNAL_H) */
diff --git a/include/asm-sparc64/signal.h b/include/asm-sparc64/signal.h
index 463ef3fdd459..cc7a6dbc5d8b 100644
--- a/include/asm-sparc64/signal.h
+++ b/include/asm-sparc64/signal.h
@@ -252,6 +252,9 @@ typedef struct sigaltstack32 {
int ss_flags;
__kernel_size_t32 ss_size;
} stack_t32;
+
+#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+
#endif
#endif /* !(__ASSEMBLY__) */
diff --git a/include/linux/signal.h b/include/linux/signal.h
index c728eae4f9a5..1f1fbb1254eb 100644
--- a/include/linux/signal.h
+++ b/include/linux/signal.h
@@ -220,6 +220,10 @@ static inline void init_sigpending(struct sigpending *sig)
extern long do_sigpending(void *, unsigned long);
+#ifndef HAVE_ARCH_GET_SIGNAL_TO_DELIVER
+extern int get_signal_to_deliver(siginfo_t *info, struct pt_regs *regs);
+#endif
+
#endif /* __KERNEL__ */
#endif /* _LINUX_SIGNAL_H */