[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 00/29] bsd-user: arm (32-bit) support
From: |
Warner Losh |
Subject: |
[PATCH v3 00/29] bsd-user: arm (32-bit) support |
Date: |
Thu, 4 Nov 2021 08:05:07 -0600 |
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).
V3 addresses review comments:
o Update target_arch_cpu.h to remove bogus unaligned check and notyet code.
o Fixed target_thread_init to match FreeBSD's startup code and remove the
cut-n-paste code from Linux's startup. Add comments.
o Fixed various bugs with setting CPSR unaddressed from patch comments on v1
o Use #defines instead of bare constants for user mode.
Following still need reviews:
bsd-user/arm/target_arch_signal.h: arm machine context for signals
bsd-user/arm/target_arch_cpu.h: Implement trivial EXCP exceptions
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 (29):
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/freebsd: Create common target_os_ucontext.h file
bsd-user/arm/target_arch_signal.h: arm specific signal registers and
stack
bsd-user/arm/target_arch_signal.h: arm machine context for signals
bsd-user/arm/target_arch_signal.h: arm user context and trapframe for
signals
bsd-user/arm/target_arch_signal.h: arm set_sigtramp_args
bsd-user/arm/target_arch_signal.h: arm get_mcontext
bsd-user/arm/target_arch_signal.h: arm set_mcontext
bsd-user/arm/target_arch_signal.h: arm get_ucontext_sigreturn
bsd-user: add arm target build
bsd-user/i386/target_arch_signal.h: Remove target_sigcontext
bsd-user/x86_64/target_arch_signal.h: Remove target_sigcontext
bsd-user/i386/target_arch_signal.h: use new target_os_ucontext.h
bsd-user/x86_64/target_arch_signal.h: use new target_os_ucontext.h
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 | 258 ++++++++++++++++++++++++++
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 | 26 +++
bsd-user/i386/target_arch_signal.h | 13 +-
bsd-user/x86_64/target_arch_signal.h | 13 +-
configs/targets/arm-bsd-user.mak | 2 +
16 files changed, 959 insertions(+), 34 deletions(-)
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 configs/targets/arm-bsd-user.mak
--
2.33.0
- [PATCH v3 00/29] bsd-user: arm (32-bit) support,
Warner Losh <=
- [PATCH v3 01/29] bsd-user/arm/target_arch_sysarch.h: Use consistent include guards, Warner Losh, 2021/11/04
- [PATCH v3 03/29] bsd-user/arm/target_arch_cpu.c: Target specific TLS routines, Warner Losh, 2021/11/04
- [PATCH v3 04/29] bsd-user/arm/target_arch_cpu.h: CPU Loop definitions, Warner Losh, 2021/11/04
- [PATCH v3 02/29] bsd-user/arm/target_syscall.h: Add copyright and update name, Warner Losh, 2021/11/04
- [PATCH v3 06/29] bsd-user/arm/target_arch_cpu.h: Dummy target_cpu_loop implementation, Warner Losh, 2021/11/04
- [PATCH v3 05/29] bsd-user/arm/target_arch_cpu.h: Implement target_cpu_clone_regs, Warner Losh, 2021/11/04
- [PATCH v3 07/29] bsd-user/arm/target_arch_cpu.h: Implement trivial EXCP exceptions, Warner Losh, 2021/11/04
- [PATCH v3 08/29] bsd-user/arm/target_arch_cpu.h: Implement data abort exceptions, Warner Losh, 2021/11/04
- [PATCH v3 10/29] bsd-user/arm/target_arch_reg.h: Implement core dump register copying, Warner Losh, 2021/11/04