Three patch series were reviewed during the code freeze and are finally ready to head into the tree.
(1) Use SPDX identifiers in most places. This makes it easier for me to upstream since I can do almost all of the files in the forked tree and not have it be an issue each time I add a new file. (2) Per discussions in the review, copy thunk.c to bsd-user from linux-user. We will use this in the third set of patches, ioctls. All that changed is the copyright header. This file has style problems, but fixing them would be a worse problem than the style issues since we share it with linux-user and want to track changes there. In the future we may actually share, but for now this was the compromise. (3) All the ioctls that bsd-user supports in FreeBSD. This uses the thunk.c code to translate back and forth between host and target. A number of pedantic changes were made against the blitz branch upstream and were discovered or highlighted by claude code. I used claude to extract all the ioctl code from the blitz branch for upstreaming. I had it review the code and fixed the problems it found (though one was a false positive). I've not tagged these as Assisted-by: since that part of our policy is in flux. No creative output of claude was applied here, though it also suggested the commit messages (that I rewrote in large part, but vestiges of the original remain). To be clear: Claude didn't write any of the actual code. Stacey Son (19): bsd-user: ioctl: add common definitions bsd-user: Add FreeBSD tty ioctl definitions bsd-user: Add FreeBSD file I/O ioctl definitions bsd-user: Add FreeBSD socket ioctl definitions bsd-user: Add FreeBSD cryptodev ioctl definitions bsd-user: Add FreeBSD disk ioctl definitions bsd-user: Add FreeBSD IPv6 ioctl definitions bsd-user: Add FreeBSD ioctl type definitions bsd-user: Add FreeBSD ioctl command table bsd-user: Add bsd-ioctl.h header bsd-user: Add target_sockaddr and safe_ioctl to syscall_defs.h bsd-user: Add bsd-ioctl.c infrastructure and termios conversion bsd-user: Add log_unsupported_ioctl function bsd-user: Add do_ioctl_unsupported function bsd-user: Add target_to_host_sockaddr_in6 function bsd-user: Add do_ioctl_in6_ifreq_sockaddr_int function bsd-user: Add do_bsd_ioctl main function bsd-user: Add init_bsd_ioctl function bsd-user: Add call to do_bsd_ioctl and add bsd-ioctl.c to the build Warner Losh (6): bsd-user: Switch to SPDX-License-Expression bsd-user: Add syscall header generator for FreeBSD bsd-user: Delete sbrk and sstk system calls. bsd-user: Create os-syscall.h bsd-user: Switch to generated syscall_nr.h bsd-user: Copy linux-user/thunk.c to bsd-user bsd-user/aarch64/signal.c | 15 +- bsd-user/aarch64/target_arch.h | 16 +- bsd-user/aarch64/target_arch_cpu.c | 15 +- bsd-user/aarch64/target_arch_cpu.h | 18 +- bsd-user/aarch64/target_arch_elf.h | 14 +- bsd-user/aarch64/target_arch_reg.h | 19 +- bsd-user/aarch64/target_arch_signal.h | 16 +- bsd-user/aarch64/target_arch_sigtramp.h | 16 +- bsd-user/aarch64/target_arch_sysarch.h | 16 +- bsd-user/aarch64/target_arch_thread.h | 16 +- bsd-user/aarch64/target_arch_vmparam.h | 16 +- bsd-user/aarch64/target_syscall.h | 16 +- bsd-user/arm/signal.c | 18 +- bsd-user/arm/target_arch.h | 16 +- bsd-user/arm/target_arch_cpu.c | 18 +- bsd-user/arm/target_arch_cpu.h | 18 +- bsd-user/arm/target_arch_elf.h | 18 +- bsd-user/arm/target_arch_reg.h | 18 +- bsd-user/arm/target_arch_signal.h | 18 +- bsd-user/arm/target_arch_sigtramp.h | 18 +- bsd-user/arm/target_arch_sysarch.h | 18 +- bsd-user/arm/target_arch_thread.h | 18 +- bsd-user/arm/target_arch_vmparam.h | 18 +- bsd-user/arm/target_syscall.h | 18 +- bsd-user/bsd-file.h | 18 +- bsd-user/bsd-ioctl.c | 436 ++++++++++++++++++++ bsd-user/bsd-ioctl.h | 14 + bsd-user/bsd-mem.c | 17 +- bsd-user/bsd-mem.h | 30 +- bsd-user/bsd-proc.c | 17 +- bsd-user/bsd-proc.h | 17 +- bsd-user/freebsd/meson.build | 10 +- bsd-user/freebsd/os-ioctl-cmds.h | 149 +++++++ bsd-user/freebsd/os-ioctl-cryptodev.h | 84 ++++ bsd-user/freebsd/os-ioctl-disk.h | 52 +++ bsd-user/freebsd/os-ioctl-filio.h | 34 ++ bsd-user/freebsd/os-ioctl-in6_var.h | 226 +++++++++++ bsd-user/freebsd/os-ioctl-ioccom.h | 43 ++ bsd-user/freebsd/os-ioctl-sockio.h | 246 +++++++++++ bsd-user/freebsd/os-ioctl-ttycom.h | 239 +++++++++++ bsd-user/freebsd/os-ioctl-types.h | 109 +++++ bsd-user/freebsd/os-misc.h | 18 +- bsd-user/freebsd/os-proc.c | 17 +- bsd-user/freebsd/os-proc.h | 18 +- bsd-user/freebsd/os-stat.c | 17 +- bsd-user/freebsd/os-stat.h | 18 +- bsd-user/freebsd/os-strace.h | 19 +- bsd-user/freebsd/os-syscall.c | 17 +- bsd-user/freebsd/os-syscall.h | 21 + bsd-user/freebsd/scripts/syscallhdr.sh | 9 + bsd-user/freebsd/strace.list | 4 + bsd-user/freebsd/syscall_nr.h | 515 ------------------------ bsd-user/freebsd/target_os_elf.h | 18 +- bsd-user/freebsd/target_os_siginfo.h | 18 +- bsd-user/freebsd/target_os_signal.h | 7 + bsd-user/freebsd/target_os_stack.h | 18 +- bsd-user/freebsd/target_os_thread.h | 18 +- bsd-user/freebsd/target_os_user.h | 18 +- bsd-user/freebsd/target_os_vmparam.h | 18 +- bsd-user/i386/signal.c | 17 +- bsd-user/i386/target_arch.h | 16 +- bsd-user/i386/target_arch_cpu.c | 17 +- bsd-user/i386/target_arch_cpu.h | 17 +- bsd-user/i386/target_arch_elf.h | 18 +- bsd-user/i386/target_arch_reg.h | 19 +- bsd-user/i386/target_arch_signal.h | 16 +- bsd-user/i386/target_arch_sigtramp.h | 16 +- bsd-user/i386/target_arch_sysarch.h | 18 +- bsd-user/i386/target_arch_thread.h | 18 +- bsd-user/i386/target_arch_vmparam.h | 18 +- bsd-user/i386/target_syscall.h | 16 +- bsd-user/meson.build | 2 + bsd-user/qemu-bsd.h | 18 +- bsd-user/syscall_defs.h | 50 +-- bsd-user/thunk.c | 470 +++++++++++++++++++++ bsd-user/x86_64/signal.c | 16 +- bsd-user/x86_64/target_arch.h | 16 +- bsd-user/x86_64/target_arch_cpu.c | 17 +- bsd-user/x86_64/target_arch_cpu.h | 17 +- bsd-user/x86_64/target_arch_elf.h | 18 +- bsd-user/x86_64/target_arch_reg.h | 19 +- bsd-user/x86_64/target_arch_signal.h | 17 +- bsd-user/x86_64/target_arch_sigtramp.h | 17 +- bsd-user/x86_64/target_arch_sysarch.h | 17 +- bsd-user/x86_64/target_arch_thread.h | 18 +- bsd-user/x86_64/target_arch_vmparam.h | 18 +- bsd-user/x86_64/target_syscall.h | 16 +- 87 files changed, 2362 insertions(+), 1526 deletions(-) create mode 100644 bsd-user/bsd-ioctl.c create mode 100644 bsd-user/bsd-ioctl.h create mode 100644 bsd-user/freebsd/os-ioctl-cmds.h create mode 100644 bsd-user/freebsd/os-ioctl-cryptodev.h create mode 100644 bsd-user/freebsd/os-ioctl-disk.h create mode 100644 bsd-user/freebsd/os-ioctl-filio.h create mode 100644 bsd-user/freebsd/os-ioctl-in6_var.h create mode 100644 bsd-user/freebsd/os-ioctl-ioccom.h create mode 100644 bsd-user/freebsd/os-ioctl-sockio.h create mode 100644 bsd-user/freebsd/os-ioctl-ttycom.h create mode 100644 bsd-user/freebsd/os-ioctl-types.h create mode 100644 bsd-user/freebsd/os-syscall.h create mode 100644 bsd-user/freebsd/scripts/syscallhdr.sh delete mode 100644 bsd-user/freebsd/syscall_nr.h create mode 100644 bsd-user/thunk.c -- 2.52.0
