On Sun, Aug 20, 2023 at 9:35 AM Richard Henderson <
richard.hender...@linaro.org> wrote:

> On 8/19/23 02:48, Karim Taha wrote:
> > From: Stacey Son <s...@freebsd.org>
> >
> > The above system calls are not supported by qemu.
> >
> > Signed-off-by: Stacey Son <s...@freebsd.org>
> > Signed-off-by: Karim Taha <kariem.taha...@gmail.com>
> > ---
> >   bsd-user/bsd-mem.h            | 21 +++++++++++++++++++++
> >   bsd-user/freebsd/os-syscall.c | 12 ++++++++++++
> >   2 files changed, 33 insertions(+)
> >
> > diff --git a/bsd-user/bsd-mem.h b/bsd-user/bsd-mem.h
> > index f737b94885..274178bef7 100644
> > --- a/bsd-user/bsd-mem.h
> > +++ b/bsd-user/bsd-mem.h
> > @@ -407,4 +407,25 @@ static inline abi_long do_bsd_shmdt(abi_ulong
> shmaddr)
> >       return get_errno(shmdt(g2h_untagged(shmaddr)));
> >   }
> >
> > +static inline abi_long do_bsd_vadvise(void)
> > +{
> > +    /* See sys_ovadvise() in vm_unix.c */
> > +    qemu_log("qemu: Unsupported syscall vadvise()\n");
> > +    return -TARGET_ENOSYS;
> > +}
>
> I see EINVAL not ENOSYS.
>

When the system call isn't present at all, it's ENOSYS + SIGSYS (I have
patches to implement this
that developers love, but users hate it since many programs cope OK when an
error is returned for
obscure system calls). When it is present, it's implemented as EINVAL. So
maybe the right thing
here is to remove the log and just return EINVAL for the implementation.


> > +static inline abi_long do_bsd_sbrk(void)
> > +{
> > +    /* see sys_sbrk() in vm_mmap.c */
> > +    qemu_log("qemu: Unsupported syscall sbrk()\n");
> > +    return -TARGET_ENOSYS;
> > +}
> > +
> > +static inline abi_long do_bsd_sstk(void)
> > +{
> > +    /* see sys_sstk() in vm_mmap.c */
> > +    qemu_log("qemu: Unsupported syscall sstk()\n");
> > +    return -TARGET_ENOSYS;
> > +}
>
> I see EOPNOTSUPP not ENOSYS.
>

Same comment as above: we should just return EOPNOSUPP and call it
implemented.


> I don't see any point in logging these.
>

Yea, that's a general pattern that we have upstream, but there's a
catch-all 'default' case that does
the logging with the right mask.

Warner

Reply via email to