qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC 07/11] linux-user: target_sigcontext for mipsn32 and m


From: Andreas Färber
Subject: [Qemu-devel] [RFC 07/11] linux-user: target_sigcontext for mipsn32 and mips64
Date: Thu, 29 Dec 2011 16:55:45 +0100

Based on arch/mips/include/asm/sigcontext.h.

Signed-off-by: Andreas Färber <address@hidden>
Cc: Richard Henderson <address@hidden>
Cc: Khansa Butt <address@hidden>
---
 linux-user/signal.c |   64 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 43 insertions(+), 21 deletions(-)

diff --git a/linux-user/signal.c b/linux-user/signal.c
index 394984d..6eeafcf 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -2423,6 +2423,49 @@ void sparc64_get_context(CPUSPARCState *env)
 }
 #endif
 #elif defined(TARGET_MIPS)
+
+#if defined(TARGET_ABI_MIPSO32) || defined(TARGET_ABI_MIPSN32)
+struct target_sigcontext {
+    uint32_t   sc_regmask;     /* Unused */
+    uint32_t   sc_status;      /* Unused */
+    uint64_t   sc_pc;
+    uint64_t   sc_regs[32];
+    uint64_t   sc_fpregs[32];
+    uint32_t   sc_acx;         /* only n32; was sc_ownedfp */
+    uint32_t   sc_fpc_csr;
+    uint32_t   sc_fpc_eir;     /* Unused */
+    uint32_t   sc_used_math;
+    uint32_t   sc_dsp;         /* dsp status, was sc_ssflags */
+    uint32_t   pad0;
+    uint64_t   sc_mdhi;
+    uint64_t   sc_mdlo;
+    uint32_t   sc_hi1;         /* Was sc_cause */
+    uint32_t   sc_lo1;         /* Was sc_badvaddr */
+    uint32_t   sc_hi2;         /* Was sc_sigset[4] */
+    uint32_t   sc_lo2;
+    uint32_t   sc_hi3;
+    uint32_t   sc_lo3;
+};
+#elif defined(TARGET_ABI_MIPSN64)
+struct target_sigcontext {
+    uint64_t sc_regs[32];
+    uint64_t sc_fpregs[32];
+    uint64_t sc_mdhi;
+    uint64_t sc_hi1;
+    uint64_t sc_hi2;
+    uint64_t sc_hi3;
+    uint64_t sc_mdlo;
+    uint64_t sc_lo1;
+    uint64_t sc_lo2;
+    uint64_t sc_lo3;
+    uint64_t sc_pc;
+    uint32_t sc_fpc_csr;
+    uint32_t sc_used_math;
+    uint32_t sc_dsp;
+    uint32_t sc_reserved;
+};
+#endif
+
 #if defined(TARGET_ABI_MIPSN64)
 
 # warning signal handling not implemented
@@ -2483,27 +2526,6 @@ long do_rt_sigreturn(CPUState *env)
 
 #elif defined(TARGET_ABI_MIPSO32)
 
-struct target_sigcontext {
-    uint32_t   sc_regmask;     /* Unused */
-    uint32_t   sc_status;
-    uint64_t   sc_pc;
-    uint64_t   sc_regs[32];
-    uint64_t   sc_fpregs[32];
-    uint32_t   sc_ownedfp;     /* Unused */
-    uint32_t   sc_fpc_csr;
-    uint32_t   sc_fpc_eir;     /* Unused */
-    uint32_t   sc_used_math;
-    uint32_t   sc_dsp;         /* dsp status, was sc_ssflags */
-    uint32_t   pad0;
-    uint64_t   sc_mdhi;
-    uint64_t   sc_mdlo;
-    target_ulong   sc_hi1;         /* Was sc_cause */
-    target_ulong   sc_lo1;         /* Was sc_badvaddr */
-    target_ulong   sc_hi2;         /* Was sc_sigset[4] */
-    target_ulong   sc_lo2;
-    target_ulong   sc_hi3;
-    target_ulong   sc_lo3;
-};
 
 struct sigframe {
     uint32_t sf_ass[4];                        /* argument save space for o32 
*/
-- 
1.7.7




reply via email to

[Prev in Thread] Current Thread [Next in Thread]