summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/mips/bits/kernel_sigaction.h
diff options
context:
space:
mode:
authorManuel Novoa III <mjn3@codepoet.org>2005-08-03 01:14:43 +0000
committerManuel Novoa III <mjn3@codepoet.org>2005-08-03 01:14:43 +0000
commite451f991945cdd33001b7d934cd48a990283ebcc (patch)
tree7eddd47fbc28cb1080bcfa481ec49859770089a4 /libc/sysdeps/linux/mips/bits/kernel_sigaction.h
parentb1fdcac7a55ed37f7dcc95d750142201acb6592c (diff)
Update from (older) glibc code.
Diffstat (limited to 'libc/sysdeps/linux/mips/bits/kernel_sigaction.h')
-rw-r--r--libc/sysdeps/linux/mips/bits/kernel_sigaction.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/mips/bits/kernel_sigaction.h b/libc/sysdeps/linux/mips/bits/kernel_sigaction.h
new file mode 100644
index 000000000..b6f52cc9c
--- /dev/null
+++ b/libc/sysdeps/linux/mips/bits/kernel_sigaction.h
@@ -0,0 +1,40 @@
+/* This is the sigaction structure from the Linux 2.1.24 kernel. */
+
+#include <sgidefs.h>
+
+#define HAVE_SA_RESTORER
+
+struct old_kernel_sigaction {
+ unsigned int sa_flags;
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned int __pad0[3]; /* reserved, keep size constant */
+
+ /* Abi says here follows reserved int[2] */
+ void (*sa_restorer)(void);
+#if (_MIPS_SZPTR < 64)
+ /*
+ * For 32 bit code we have to pad struct sigaction to get
+ * constant size for the ABI
+ */
+ int pad1[1]; /* reserved */
+#endif
+};
+
+
+#define _KERNEL_NSIG 128
+#define _KERNEL_NSIG_BPW _MIPS_SZLONG
+#define _KERNEL_NSIG_WORDS (_KERNEL_NSIG / _KERNEL_NSIG_BPW)
+
+typedef struct {
+ unsigned long sig[_KERNEL_NSIG_WORDS];
+} kernel_sigset_t;
+
+/* This is the sigaction structure from the Linux 2.1.68 kernel. */
+struct kernel_sigaction {
+ unsigned int sa_flags;
+ __sighandler_t k_sa_handler;
+ kernel_sigset_t sa_mask;
+ void (*sa_restorer)(void);
+ int s_resv[1]; /* reserved */
+};