diff options
author | Timothy E Baldwin <T.E.Baldwin99@members.leeds.ac.uk> | 2016-05-12 18:47:29 +0100 |
---|---|---|
committer | Riku Voipio <riku.voipio@linaro.org> | 2016-05-27 14:49:49 +0300 |
commit | 499b5d176a77773cab5479264a3d5067176df21c (patch) | |
tree | 91254e17cb3e44cb33730e4e4e79c1ae288fae24 /linux-user/errno_defs.h | |
parent | 14896d32814c78ed5b97a22fbd9e5a6cddc2de80 (diff) | |
download | qemu-499b5d176a77773cab5479264a3d5067176df21c.zip qemu-499b5d176a77773cab5479264a3d5067176df21c.tar.gz qemu-499b5d176a77773cab5479264a3d5067176df21c.tar.bz2 |
linux-user: Renumber TARGET_QEMU_ESIGRETURN, make it not arch-specific
Currently we define a QEMU-internal errno TARGET_QEMU_ESIGRETURN
only on the MIPS and PPC targets; move this to errno_defs.h
so it is available for all architectures, and renumber it to 513.
We pick 513 because this is safe from future use as a system call return
value: Linux uses it as ERESTART_NOINTR internally and never allows that
errno to escape to userspace.
Signed-off-by: Timothy Edward Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
Message-id: 1441497448-32489-4-git-send-email-T.E.Baldwin99@members.leeds.ac.uk
[PMM: TARGET_ERESTARTSYS split out into preceding patch, add comment]
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
Diffstat (limited to 'linux-user/errno_defs.h')
-rw-r--r-- | linux-user/errno_defs.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/linux-user/errno_defs.h b/linux-user/errno_defs.h index b7a8c9f..65522c4 100644 --- a/linux-user/errno_defs.h +++ b/linux-user/errno_defs.h @@ -147,3 +147,12 @@ * kernel uses for the same purpose. */ #define TARGET_ERESTARTSYS 512 /* Restart system call (if SA_RESTART) */ + +/* QEMU internal, not visible to the guest. This is returned by the + * do_sigreturn() code after a successful sigreturn syscall, to indicate + * that it has correctly set the guest registers and so the main loop + * should not touch them. We use the value the guest would use for + * ERESTART_NOINTR (which is kernel internal) to guarantee that we won't + * clash with a valid guest errno now or in the future. + */ +#define TARGET_QEMU_ESIGRETURN 513 /* Return from signal */ |