linux-user: Create special-errno.h
Pull the two internal errno used by qemu internally into their own header file. This includes the one define required by safe-syscall.S. Reviewed-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
57a0c9384c
commit
5da4063f64
@ -21,6 +21,7 @@
|
||||
#define CPU_LOOP_COMMON_H
|
||||
|
||||
#include "exec/log.h"
|
||||
#include "special-errno.h"
|
||||
|
||||
#define EXCP_DUMP(env, fmt, ...) \
|
||||
do { \
|
||||
|
@ -147,21 +147,4 @@
|
||||
#define TARGET_ERFKILL 132 /* Operation not possible due to RF-kill */
|
||||
#define TARGET_EHWPOISON 133 /* Memory page has hardware error */
|
||||
|
||||
/* QEMU internal, not visible to the guest. This is returned when a
|
||||
* system call should be restarted, to tell the main loop that it
|
||||
* should wind the guest PC backwards so it will re-execute the syscall
|
||||
* after handling any pending signals. They match with the ones the guest
|
||||
* kernel uses for the same purpose.
|
||||
*/
|
||||
#define QEMU_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 QEMU_ESIGRETURN 513 /* Return from signal */
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,7 @@
|
||||
* See the COPYING file in the top-level directory.
|
||||
*/
|
||||
|
||||
#include "target_errno_defs.h"
|
||||
#include "special-errno.h"
|
||||
|
||||
/* We have the correct host directory on our include path
|
||||
* so that this will pull in the right fragment for the architecture.
|
||||
|
@ -20,6 +20,8 @@
|
||||
#ifndef SIGNAL_COMMON_H
|
||||
#define SIGNAL_COMMON_H
|
||||
|
||||
#include "special-errno.h"
|
||||
|
||||
/* Fallback addresses into sigtramp page. */
|
||||
extern abi_ulong default_sigreturn;
|
||||
extern abi_ulong default_rt_sigreturn;
|
||||
|
32
linux-user/special-errno.h
Normal file
32
linux-user/special-errno.h
Normal file
@ -0,0 +1,32 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* QEMU internal errno values for implementing user-only POSIX.
|
||||
*
|
||||
* Copyright (c) 2003 Fabrice Bellard
|
||||
* Copyright (c) 2021 Linaro, Ltd.
|
||||
*/
|
||||
|
||||
#ifndef SPECIAL_ERRNO_H
|
||||
#define SPECIAL_ERRNO_H
|
||||
|
||||
/*
|
||||
* All of these are QEMU internal, not visible to the guest.
|
||||
* They should be chosen so as to not overlap with any host
|
||||
* or guest errno.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is returned when a system call should be restarted, to tell the
|
||||
* main loop that it should wind the guest PC backwards so it will
|
||||
* re-execute the syscall after handling any pending signals.
|
||||
*/
|
||||
#define QEMU_ERESTARTSYS 512
|
||||
|
||||
/*
|
||||
* This is returned after a successful sigreturn syscall, to indicate
|
||||
* that it has correctly set the guest registers and so the main loop
|
||||
* should not touch them.
|
||||
*/
|
||||
#define QEMU_ESIGRETURN 513
|
||||
|
||||
#endif /* SPECIAL_ERRNO_H */
|
@ -136,6 +136,7 @@
|
||||
#include "qemu/guest-random.h"
|
||||
#include "qemu/selfmap.h"
|
||||
#include "user/syscall-trace.h"
|
||||
#include "special-errno.h"
|
||||
#include "qapi/error.h"
|
||||
#include "fd-trans.h"
|
||||
#include "tcg/tcg.h"
|
||||
|
Loading…
Reference in New Issue
Block a user