summaryrefslogtreecommitdiffstats
path: root/libc/include/sys/ucontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/include/sys/ucontext.h')
-rw-r--r--libc/include/sys/ucontext.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h
index dd2a0bb..b68d704 100644
--- a/libc/include/sys/ucontext.h
+++ b/libc/include/sys/ucontext.h
@@ -180,6 +180,25 @@ typedef struct fpregset {
} fp_r;
} fpregset_t;
+#ifdef __LP64__
+typedef struct {
+ gregset_t gregs;
+ fpregset_t fpregs;
+ greg_t mdhi;
+ greg_t hi1;
+ greg_t hi2;
+ greg_t hi3;
+ greg_t mdlo;
+ greg_t lo1;
+ greg_t lo2;
+ greg_t lo3;
+ greg_t pc;
+ uint32_t fpc_csr;
+ uint32_t used_math;
+ uint32_t dsp;
+ uint32_t reserved;
+} mcontext_t;
+#else
typedef struct {
unsigned regmask;
unsigned status;
@@ -200,6 +219,7 @@ typedef struct {
unsigned long hi3;
unsigned long lo3;
} mcontext_t;
+#endif
typedef struct ucontext {
unsigned long uc_flags;
@@ -209,10 +229,6 @@ typedef struct ucontext {
sigset_t uc_sigmask;
} ucontext_t;
-#elif defined(__mips64__)
-
-#error TODO
-
#elif defined(__x86_64__)
enum {