From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:45543) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgIMZ-0000Se-QD for qemu-devel@nongnu.org; Thu, 29 Dec 2011 10:57:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RgIMX-0003ee-BA for qemu-devel@nongnu.org; Thu, 29 Dec 2011 10:57:51 -0500 Received: from cantor2.suse.de ([195.135.220.15]:59576 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RgIMX-0003e2-37 for qemu-devel@nongnu.org; Thu, 29 Dec 2011 10:57:49 -0500 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Thu, 29 Dec 2011 16:55:45 +0100 Message-Id: <1325174149-8077-8-git-send-email-afaerber@suse.de> In-Reply-To: <1325174149-8077-1-git-send-email-afaerber@suse.de> References: <1325174149-8077-1-git-send-email-afaerber@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [RFC 07/11] linux-user: target_sigcontext for mipsn32 and mips64 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Riku Voipio , Khansa Butt , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Richard Henderson Based on arch/mips/include/asm/sigcontext.h. Signed-off-by: Andreas F=C3=A4rber Cc: Richard Henderson Cc: Khansa Butt --- 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) =20 # warning signal handling not implemented @@ -2483,27 +2526,6 @@ long do_rt_sigreturn(CPUState *env) =20 #elif defined(TARGET_ABI_MIPSO32) =20 -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; -}; =20 struct sigframe { uint32_t sf_ass[4]; /* argument save space for o32 */ --=20 1.7.7