about summary refs log tree commit diff
path: root/arch/mips
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-11-25 23:04:23 -0500
committerRich Felker <dalias@aerifal.cx>2012-11-25 23:04:23 -0500
commita8da6c2f287037cbacc65578a268f355760eaf8e (patch)
treee325def382b70f767adfa8ac844ee899936eacf4 /arch/mips
parent4b75f4ed8d08b26d4bf2ac96191b395218ad888e (diff)
downloadmusl-a8da6c2f287037cbacc65578a268f355760eaf8e.tar.gz
musl-a8da6c2f287037cbacc65578a268f355760eaf8e.tar.xz
musl-a8da6c2f287037cbacc65578a268f355760eaf8e.zip
fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/bits/signal.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/arch/mips/bits/signal.h b/arch/mips/bits/signal.h
index 9b4861d3..857d3c07 100644
--- a/arch/mips/bits/signal.h
+++ b/arch/mips/bits/signal.h
@@ -2,13 +2,31 @@
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef struct sigcontext
+typedef unsigned long long greg_t, gregset_t[32];
+typedef struct {
+	union {
+		double fp_dregs[32];
+		struct {
+			float _fp_fregs;
+			unsigned _fp_pad;
+		} fp_fregs[32];
+	} fp_r;
+} fpregset_t;
+struct sigcontext
 {
 	unsigned sc_regmask, sc_status;
 	unsigned long long sc_pc, sc_regs[32], sc_fpregs[32];
 	unsigned sc_ownedfp, sc_fpc_csr, sc_fpc_eir, sc_used_math, sc_dsp;
 	unsigned long long sc_mdhi, sc_mdlo;
 	unsigned long sc_hi1, sc_lo1, sc_hi2, sc_lo2, sc_hi3, sc_lo3;
+};
+typedef struct
+{
+	unsigned regmask, status;
+	unsigned long long pc, regs[32], fpregs[32];
+	unsigned ownedfp, fpc_csr, fpc_eir, used_math, dsp;
+	unsigned long long mdhi, mdlo;
+	unsigned long hi1, lo1, hi2, lo2, hi3, lo3;
 } mcontext_t;
 #else
 typedef struct {