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 <imp@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();
+ }
@@ -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;