On 1/7/22 11:37 PM, Warner Losh wrote:
> The following changes since commit 7d4ae4d4978079d564d3b6354c90a949130409fe:
>
> Merge tag 'pull-request-2022-01-05' of https://gitlab.com/thuth/qemu into staging (2022-01-05 08:47:18 -0800)
>
> are available in the Git repository at:
>
> git@gitlab.com:bsdimp/qemu.git tags/bsd-user-arm-pull-request
>
> for you to fetch changes up to 18fe5d99f27fa7458724aa367e3c6784c36d5771:
>
> bsd-user: add arm target build (2022-01-07 22:58:51 -0700)
>
> ----------------------------------------------------------------
> bsd-user: arm (32-bit) support
>
> This series of patches brings in 32-bit arm support for bsd-user. It implements
> all the bits needed to do image activation, signal handling, stack management
> and threading. This allows us to get to the "Hello World" level. The arm and x86
> code are now the same as in the bsd-user fork. For full context, the fork is at
> https://github.com/qemu-bsd-user/qemu-bsd-user/tree/blitz (though the the recent
> sig{bus,segv} needed updates are incomplete).
>
> v5 changes:
> o Moved to using the CPUArchState typedef and move
> set_sigtramp_args, get_mcontext, set_mcontext, and
> get_ucontext_sigreturn prototypes to
> bsd-user/freebsd/target_os_ucontext.h
> o Fix issues with arm's set_mcontext related to masking
> and remove an unnecessary check.
>
> We're down to only one hunk needing review:
> bsd-user/arm/target_arch_signal.c: arm set_mcontext
>
> Warnings that should be ignored:
> o make checkpatch has a couple of complaints about the comments for the
> signal trampoline, since it's a false positive IMHO.
> WARNING: Block comments use a leading /* on a separate line
> + /* 8 */ sys_sigreturn,
> WARNING: Block comments use a leading /* on a separate line
> + /* 9 */ sys_exit
>
> ----------------------------------------------------------------
>
> Warner Losh (37):
> bsd-user/mips*: Remove mips support
> bsd-user/freebsd: Create common target_os_ucontext.h file
> bsd-user: create a per-arch signal.c file
> bsd-user/i386/target_arch_signal.h: Remove target_sigcontext
> bsd-user/i386/target_arch_signal.h: use new target_os_ucontext.h
> bsd-user/i386/target_arch_signal.h: Update mcontext_t to match FreeBSD
> bsd-user/i386: Move the inlines into signal.c
> bsd-user/x86_64/target_arch_signal.h: Remove target_sigcontext
> bsd-user/x86_64/target_arch_signal.h: use new target_os_ucontext.h
> bsd-user/x86_64/target_arch_signal.h: Fill in mcontext_t
> bsd-user/x86_64: Move functions into signal.c
> bsd-user/target_os_signal.h: Move signal prototypes to
> target_os_ucontext.h
> bsd-user/arm/target_arch_sysarch.h: Use consistent include guards
> bsd-user/arm/target_syscall.h: Add copyright and update name
> bsd-user/arm/target_arch_cpu.c: Target specific TLS routines
> bsd-user/arm/target_arch_cpu.h: CPU Loop definitions
> bsd-user/arm/target_arch_cpu.h: Implement target_cpu_clone_regs
> bsd-user/arm/target_arch_cpu.h: Dummy target_cpu_loop implementation
> bsd-user/arm/target_arch_cpu.h: Implement trivial EXCP exceptions
> bsd-user/arm/target_arch_cpu.h: Implement data abort exceptions
> bsd-user/arm/target_arch_cpu.h: Implement system call dispatch
> bsd-user/arm/target_arch_reg.h: Implement core dump register copying
> bsd-user/arm/target_arch_vmparam.h: Parameters for arm address space
> bsd-user/arm/target_arch_sigtramp.h: Signal Trampoline for arm
> bsd-user/arm/target_arch_thread.h: Routines to create and switch to a
> thread
> bsd-user/arm/target_arch_elf.h: arm defines for ELF
> bsd-user/arm/target_arch_elf.h: arm get hwcap
> bsd-user/arm/target_arch_elf.h: arm get_hwcap2 impl
> bsd-user/arm/target_arch_signal.h: arm specific signal registers and
> stack
> bsd-user/arm/target_arch_signal.h: arm machine context and trapframe
> for signals
> bsd-user/arm/target_arch_signal.h: Define size of *context_t
> bsd-user/arm/signal.c: arm set_sigtramp_args
> bsd-user/arm/signal.c: arm get_mcontext
> bsd-user/arm/signal.c: arm set_mcontext
> bsd-user/arm/signal.c: arm get_ucontext_sigreturn
> bsd-user/freebsd/target_os_ucontext.h: Require TARGET_*CONTEXT_SIZE
> bsd-user: add arm target build
>
> bsd-user/arm/signal.c | 196 ++++++++++++++++++++++++
> bsd-user/arm/target_arch.h | 28 ++++
> bsd-user/arm/target_arch_cpu.c | 39 +++++
> bsd-user/arm/target_arch_cpu.h | 211 ++++++++++++++++++++++++++
> bsd-user/arm/target_arch_elf.h | 128 ++++++++++++++++
> bsd-user/arm/target_arch_reg.h | 60 ++++++++
> bsd-user/arm/target_arch_signal.h | 88 +++++++++++
> bsd-user/arm/target_arch_sigtramp.h | 49 ++++++
> bsd-user/arm/target_arch_sysarch.h | 6 +-
> bsd-user/arm/target_arch_thread.h | 82 ++++++++++
> bsd-user/arm/target_arch_vmparam.h | 48 ++++++
> bsd-user/arm/target_syscall.h | 27 +++-
> bsd-user/freebsd/target_os_signal.h | 3 -
> bsd-user/freebsd/target_os_ucontext.h | 44 ++++++
> bsd-user/i386/signal.c | 55 +++++++
> bsd-user/i386/target_arch_signal.h | 95 ++++++------
> bsd-user/mips/target_arch_sysarch.h | 69 ---------
> bsd-user/mips/target_syscall.h | 52 -------
> bsd-user/mips64/target_arch_sysarch.h | 69 ---------
> bsd-user/mips64/target_syscall.h | 53 -------
> bsd-user/x86_64/signal.c | 55 +++++++
> bsd-user/x86_64/target_arch_signal.h | 103 +++++++------
> configs/targets/arm-bsd-user.mak | 2 +
> meson.build | 2 +-
> 24 files changed, 1214 insertions(+), 350 deletions(-)
> create mode 100644 bsd-user/arm/signal.c
> create mode 100644 bsd-user/arm/target_arch.h
> create mode 100644 bsd-user/arm/target_arch_cpu.c
> create mode 100644 bsd-user/arm/target_arch_cpu.h
> create mode 100644 bsd-user/arm/target_arch_elf.h
> create mode 100644 bsd-user/arm/target_arch_reg.h
> create mode 100644 bsd-user/arm/target_arch_signal.h
> create mode 100644 bsd-user/arm/target_arch_sigtramp.h
> create mode 100644 bsd-user/arm/target_arch_thread.h
> create mode 100644 bsd-user/arm/target_arch_vmparam.h
> create mode 100644 bsd-user/freebsd/target_os_ucontext.h
> create mode 100644 bsd-user/i386/signal.c
> delete mode 100644 bsd-user/mips/target_arch_sysarch.h
> delete mode 100644 bsd-user/mips/target_syscall.h
> delete mode 100644 bsd-user/mips64/target_arch_sysarch.h
> delete mode 100644 bsd-user/mips64/target_syscall.h
> create mode 100644 bsd-user/x86_64/signal.c
> create mode 100644 configs/targets/arm-bsd-user.mak
Applied, thanks.
r~