[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 00/37] Bsd user arm patches

From: Richard Henderson
Subject: Re: [PULL 00/37] Bsd user arm patches
Date: Sat, 8 Jan 2022 11:18:27 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.14.0

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
    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
   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
   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
   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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]