From c0bea68f9ea48f0dea7a06a259a613bfd3a7e35e Mon Sep 17 00:00:00 2001 From: Timothy E Baldwin Date: Thu, 12 May 2016 18:47:34 +0100 Subject: linux-user: Support for restarting system calls for SPARC targets Update the SPARC main loop and sigreturn code: * on TARGET_ERESTARTSYS, wind guest PC backwards to repeat syscall insn * set all guest CPU state within signal.c code on sigreturn * handle TARGET_QEMU_ESIGRETURN in the main loop as the indication that the main loop should not touch any guest CPU state Signed-off-by: Timothy Edward Baldwin Message-id: 1441497448-32489-9-git-send-email-T.E.Baldwin99@members.leeds.ac.uk [PMM: Commit message tweaks; drop TARGET_USE_ERESTARTSYS define] Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell Signed-off-by: Riku Voipio --- linux-user/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'linux-user/signal.c') diff --git a/linux-user/signal.c b/linux-user/signal.c index 14e58b05b2..e742347a26 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -2449,7 +2449,7 @@ long do_sigreturn(CPUSPARCState *env) goto segv_and_exit; } unlock_user_struct(sf, sf_addr, 0); - return env->regwptr[0]; + return -TARGET_QEMU_ESIGRETURN; segv_and_exit: unlock_user_struct(sf, sf_addr, 0); -- cgit v1.2.3-55-g7522