On Sat, Feb 11, 2023 at 4:19 PM Richard Henderson <
richard.hender...@linaro.org> wrote:

> On 2/10/23 13:18, Warner Losh wrote:
> > Most of the time, it's useful to make our best effort, but sometimes we
> > want to know right away when we don't implement something. First place
> > we use it is for unknown syscalls.
> >
> > Signed-off-by: Warner Losh <i...@bsdimp.com>
> > ---
> >   bsd-user/freebsd/os-syscall.c | 4 ++++
> >   bsd-user/main.c               | 5 ++++-
> >   bsd-user/qemu.h               | 1 +
> >   3 files changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/bsd-user/freebsd/os-syscall.c
> b/bsd-user/freebsd/os-syscall.c
> > index 179a20c304b..e2b26ecb8dd 100644
> > --- a/bsd-user/freebsd/os-syscall.c
> > +++ b/bsd-user/freebsd/os-syscall.c
> > @@ -508,6 +508,10 @@ static abi_long freebsd_syscall(void *cpu_env, int
> num, abi_long arg1,
> >
> >       default:
> >           qemu_log_mask(LOG_UNIMP, "Unsupported syscall: %d\n", num);
> > +        if (bsd_user_strict) {
> > +            printf("Unimplemented system call %d\n", num);
> > +            abort();
> > +        }
>
> I don't like the raw printf, even if you did write to stderr.
> Perhaps just the abort, letting the error message be handled by qemu_log?
>
> > @@ -396,6 +397,8 @@ int main(int argc, char **argv)
> >               trace_opt_parse(optarg);
> >           } else if (!strcmp(r, "0")) {
> >               argv0 = argv[optind++];
> > +        } else if (!strcmp(r, "strict")) {
> > +            bsd_user_strict = true;
>
> Perhaps force LOG_UNIMP?  Without -D, you'll get the qemu_log above to
> stderr.
>

Given the number of other changes in the other bits, I'm going to defer
this feedback until round 3, since
the number of changes I've made for round 2 means there will  almost
certainly result in a round 3...

Warner

Reply via email to