On Sat, Sep 25, 2021 at 4:33 AM Philippe Mathieu-Daudé <
f4bug@amsat.org> wrote:
On 9/22/21 08:14, Warner Losh wrote:
> Make get_errno and is_error global so files other than syscall.c can use
> them.
>
> Signed-off-by: Warner Losh <imp@bsdimp.com>
> ---
> bsd-user/qemu.h | 4 ++++
> bsd-user/syscall.c | 10 +++++-----
> 2 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
> index 522d6c4031..22fc3a6c30 100644
> --- a/bsd-user/qemu.h
> +++ b/bsd-user/qemu.h
> @@ -235,6 +235,10 @@ extern unsigned long target_dflssiz;
> extern unsigned long target_maxssiz;
> extern unsigned long target_sgrowsiz;
>
> +/* syscall.c */
> +abi_long get_errno(abi_long ret);
> +int is_error(abi_long ret);
> +
> /* user access */
>
> #define VERIFY_READ PAGE_READ
> diff --git a/bsd-user/syscall.c b/bsd-user/syscall.c
> index 372836d44d..a579d52ede 100644
> --- a/bsd-user/syscall.c
> +++ b/bsd-user/syscall.c
> @@ -33,18 +33,18 @@
> static abi_ulong target_brk;
> static abi_ulong target_original_brk;
>
> -static inline abi_long get_errno(abi_long ret)
> +abi_long get_errno(abi_long ret)
> {
> - if (ret == -1)
> + if (ret == -1) {
> /* XXX need to translate host -> target errnos here */
> return -(errno);
> - else
> - return ret;
> + }
> + return ret;
> }
>
> #define target_to_host_bitmask(x, tbl) (x)
>
> -static inline int is_error(abi_long ret)
> +int is_error(abi_long ret)
Since you are modifying this, do you mind having it return
a boolean type instead?
Nah, don't mind. There were no problems caused by making that change.
> {
> return (abi_ulong)ret >= (abi_ulong)(-4096);
> }
>
Preferably having is_error() returning bool:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Thanks for the suggestion.
Warner