From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45407) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNHCq-0003BB-QM for qemu-devel@nongnu.org; Thu, 06 Aug 2015 05:11:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZNHCm-0007xg-Rf for qemu-devel@nongnu.org; Thu, 06 Aug 2015 05:11:20 -0400 Received: from mail-wi0-f178.google.com ([209.85.212.178]:33006) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZNHCm-0007xZ-LE for qemu-devel@nongnu.org; Thu, 06 Aug 2015 05:11:16 -0400 Received: by wijp15 with SMTP id p15so14154116wij.0 for ; Thu, 06 Aug 2015 02:11:16 -0700 (PDT) References: <1438793483-12721-1-git-send-email-cov@codeaurora.org> <1438793483-12721-2-git-send-email-cov@codeaurora.org> From: Alex =?utf-8?Q?Benn=C3=A9e?= In-reply-to: <1438793483-12721-2-git-send-email-cov@codeaurora.org> Date: Thu, 06 Aug 2015 10:11:13 +0100 Message-ID: <87twsckci6.fsf@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [RFC 01/14] Make unknown semihosting calls non-fatal List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Christopher Covington Cc: qemu-devel@nongnu.org Christopher Covington writes: > Signed-off-by: Christopher Covington > --- > target-arm/arm-semi.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/target-arm/arm-semi.c b/target-arm/arm-semi.c > index a8b83e6..bcc70ec 100644 > --- a/target-arm/arm-semi.c > +++ b/target-arm/arm-semi.c > @@ -186,8 +186,6 @@ static void arm_semi_flen_cb(CPUState *cs, target_ulong ret, target_ulong err) > #define SET_ARG(n, val) put_user_ual(val, args + (n) * 4) > uint32_t do_arm_semihosting(CPUARMState *env) > { > - ARMCPU *cpu = arm_env_get_cpu(env); > - CPUState *cs = CPU(cpu); > target_ulong args; > target_ulong arg0, arg1, arg2, arg3; > char * s; > @@ -195,6 +193,8 @@ uint32_t do_arm_semihosting(CPUARMState *env) > uint32_t ret; > uint32_t len; > #ifdef CONFIG_USER_ONLY > + ARMCPU *cpu = arm_env_get_cpu(env); > + CPUState *cs = CPU(cpu); > TaskState *ts = cs->opaque; > #else > CPUARMState *ts = env; > @@ -562,7 +562,6 @@ uint32_t do_arm_semihosting(CPUARMState *env) > exit(ret); > default: > fprintf(stderr, "qemu: Unsupported SemiHosting SWI 0x%02x\n", nr); > - cpu_dump_state(cs, stderr, fprintf, 0); > - abort(); > + return -1; Do SemiHosting calls return anything to the guest? If so removing the abort means the guest may go unpredictable if the call is just ignored. If so the argument would be to leave the abort() in and just add the missing semihosting calls. > } > } -- Alex Bennée