summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2002-02-11 07:58:27 +0000
committerEric Andersen <andersen@codepoet.org>2002-02-11 07:58:27 +0000
commitf3aece684ded006182453378e8037b2b2cd290b8 (patch)
tree59a98b957966b0fa6f7d7b0fc9b1f78be6434992
parentefe1d2c43985b233e64516c77a2a011b258a04d5 (diff)
HAVE_SA_RESTORER is supposed to be true, not false, on most arches.
-Erik
-rw-r--r--libc/signal/sigaction.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/libc/signal/sigaction.c b/libc/signal/sigaction.c
index 849abc745..cf58edf39 100644
--- a/libc/signal/sigaction.c
+++ b/libc/signal/sigaction.c
@@ -28,7 +28,22 @@
#define HAVE_SA_RESTORER
-#if defined(__hppa__)
+#if defined(__alpha__)
+#undef HAVE_SA_RESTORER
+/* This is the sigaction struction from the Linux 2.1.20 kernel. */
+struct old_kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned int sa_flags;
+};
+/* This is the sigaction structure from the Linux 2.1.68 kernel. */
+struct kernel_sigaction {
+ __sighandler_t k_sa_handler;
+ unsigned int sa_flags;
+ sigset_t sa_mask;
+};
+#elif defined(__hppa__)
+/* We do not support SA_RESTORER on hppa. */
#undef HAVE_SA_RESTORER
/* This is the sigaction struction from the Linux 2.1.20 kernel. */
/* Blah. This is bogus. We don't ever use it. */
@@ -37,7 +52,6 @@ struct old_kernel_sigaction {
unsigned long sa_mask;
unsigned long sa_flags;
};
-
/* This is the sigaction structure from the Linux 2.1.68 kernel. */
struct kernel_sigaction {
__sighandler_t k_sa_handler;
@@ -79,20 +93,19 @@ struct kernel_sigaction {
int s_resv[1]; /* reserved */
};
#else
-
-#undef HAVE_SA_RESTORER
-/* This is the sigaction struction from the Linux 2.1.20 kernel. */
+/* This is the sigaction structure from the Linux 2.1.20 kernel. */
struct old_kernel_sigaction {
__sighandler_t k_sa_handler;
unsigned long sa_mask;
- unsigned int sa_flags;
-};
-
+ unsigned long sa_flags;
+ void (*sa_restorer) (void);
+};
+
/* This is the sigaction structure from the Linux 2.1.68 kernel. */
-
struct kernel_sigaction {
__sighandler_t k_sa_handler;
- unsigned int sa_flags;
+ unsigned long sa_flags;
+ void (*sa_restorer) (void);
sigset_t sa_mask;
};
#endif