summaryrefslogtreecommitdiffstats
path: root/sys/mips/include/ucontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/mips/include/ucontext.h')
-rw-r--r--sys/mips/include/ucontext.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/sys/mips/include/ucontext.h b/sys/mips/include/ucontext.h
index 72f07b4..aafd1dc 100644
--- a/sys/mips/include/ucontext.h
+++ b/sys/mips/include/ucontext.h
@@ -39,6 +39,10 @@
#ifndef _LOCORE
+#if defined(_KERNEL) && !defined(KLD_MODULE) && !defined(_STANDALONE)
+#include "opt_compat.h"
+#endif
+
typedef struct __mcontext {
/*
* These fields must match the corresponding fields in struct
@@ -56,6 +60,32 @@ typedef struct __mcontext {
void *mc_tls; /* pointer to TLS area */
int __spare__[8]; /* XXX reserved */
} mcontext_t;
+
+#if (defined(__mips_n32) || defined(__mips_n64)) && defined(COMPAT_FREEBSD32)
+#include <compat/freebsd32/freebsd32_signal.h>
+
+typedef struct __mcontext32 {
+ int mc_onstack;
+ int32_t mc_pc;
+ int32_t mc_regs[32];
+ int32_t sr;
+ int32_t mullo, mulhi;
+ int mc_fpused;
+ int32_t mc_fpregs[33];
+ int32_t mc_fpc_eir;
+ void *mc_tls;
+ int __spare__[8];
+} mcontext32_t;
+
+typedef struct __ucontext32 {
+ sigset_t uc_sigmask;
+ mcontext32_t uc_mcontext;
+ uint32_t uc_link;
+ struct sigaltstack32 uc_stack;
+ uint32_t uc_flags;
+ uint32_t __spare__[4];
+} ucontext32_t;
+#endif
#endif
#ifndef SZREG
OpenPOWER on IntegriCloud