This series of patches does two things. First, it starts to give up on the idea that you can run FooBSD binaries on BarBSD. They are too different to make that happen any time soon, though I've kept the support for Net/OpenBSD, even though they haven't built. We'll need a lot of work to make that happen, though, and I need to simplify to get things upstream.
Second, this upstreams the first 9 system calls. It deletes the old implementation and starts fresh with a new one that pulls some things from the old, updates some old things, etc. It's easier to understand this way. Finally, it starts to move some of the ifdef trees into target.h. Warner Losh (22): bsd-user/main.c: Drop syscall flavor arg -bsd bsd-user/x86_64/target_arch_cpu.h: int $80 never was a BSD system call on amd64 bsd-user/x86_64/target_arch_cpu.h: Remove openbsd syscall bsd-user/i386/target_arch_cpu.h: Remove openbsd syscall bsd-user/arm/target_arch_cpu.h: Only support FreeBSD sys calls bsd-user/arm/target_arch_thread.h: Assume a FreeBSD target bsd-user/x86_64/target_arch_thread.h: Assume a FreeBSD target bsd-user: Remove bsd_type bsd-user/freebsd/os-syscall.c: Move syscall processing here bsd-user: Move system call building to os-syscall.c bsd-user/sycall.c: Now obsolete, remove bsd-user/freebsd/os-syscall.c: Add get_errno and host_to_target_errno bsd-user/bsd-file.h: Implementation details for the filesystem calls bsd-user/freebsd/os-syscall.c: lock_iovec bsd-user/freebsd/os-syscall.c: unlock_iovec bsd-user/freebsd/os-syscall.c: Tracing and error boilerplate bsd-user: introduce target.h bsd-user: Define target_arg64 bsd-user: Add safe system call macros bsd-user/bsd-file.h: Add implementations for read, pread, readv and preadv bsd-user/bsd-file.h: Meat of the write system calls bsd-user/freebsd/os-syscall.c: Implement exit bsd-user/arm/target.h | 21 ++ bsd-user/arm/target_arch_cpu.h | 139 ++++---- bsd-user/arm/target_arch_thread.h | 4 +- bsd-user/bsd-file.h | 203 +++++++++++ bsd-user/bsd-proc.h | 43 +++ bsd-user/freebsd/meson.build | 1 + bsd-user/freebsd/os-syscall.c | 287 +++++++++++++++ bsd-user/i386/target.h | 21 ++ bsd-user/i386/target_arch_cpu.h | 84 ++--- bsd-user/main.c | 14 - bsd-user/meson.build | 1 - bsd-user/qemu.h | 24 +- bsd-user/syscall.c | 516 --------------------------- bsd-user/syscall_defs.h | 47 +++ bsd-user/x86_64/target.h | 21 ++ bsd-user/x86_64/target_arch_cpu.h | 85 +---- bsd-user/x86_64/target_arch_thread.h | 4 +- 17 files changed, 773 insertions(+), 742 deletions(-) create mode 100644 bsd-user/arm/target.h create mode 100644 bsd-user/bsd-file.h create mode 100644 bsd-user/bsd-proc.h create mode 100644 bsd-user/freebsd/os-syscall.c create mode 100644 bsd-user/i386/target.h delete mode 100644 bsd-user/syscall.c create mode 100644 bsd-user/x86_64/target.h -- 2.33.1