[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 00/40] Bsd user arm 2022q1 patches
From: |
Warner Losh |
Subject: |
[PULL 00/40] Bsd user arm 2022q1 patches |
Date: |
Mon, 31 Jan 2022 12:55:56 -0700 |
The following changes since commit 7a1043cef91739ff4b59812d30f1ed2850d3d34e:
Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into
staging (2022-01-28 14:04:01 +0000)
are available in the Git repository at:
git@gitlab.com:bsdimp/qemu.git tags/bsd-user-arm-2022q1-pull-request
for you to fetch changes up to 1103d59caaa82c94b4223a5429c31895d2f05217:
bsd-user/freebsd/target_os_ucontext.h: Prefer env as arg name for
CPUArchState args (2022-01-30 17:13:50 -0700)
----------------------------------------------------------------
bsd-user: upstream signal implementation
Upstream the bsd-user fork signal implementation, for the most part. This
series of commits represents nearly all of the infrastructure that surround
signals, except the actual system call glue (that was also reworked in the
fork and needs its own series). In addition, this adds the sigsegv and sigbus
code to arm. Even in the fork, we don't have good x86 signal implementation,
so there's little to upstream for that at the moment.
bsd-user's signal implementation is similar to linux-user's. The full context
can be found in the bsd-user's fork's 'blitz branch' at
https://github.com/qemu-bsd-user/qemu-bsd-user/tree/blitz which shows how these
are used to implement various system calls. Since this was built from
linux-user's stack stuff, evolved for BSD with the passage of a few years, it
no-doubt missed some bug fixes from linux-user (though nothing obvious stood out
in the quick comparison I made). After the first round of reviews, many of these
improvements have been incorporated.
Patchew history: 20220125012947.14974-1-imp@bsdimp.com/">https://patchew.org/QEMU/20220125012947.14974-1-imp@bsdimp.com/
----------------------------------------------------------------
Warner Losh (40):
bsd-user: Complete FreeBSD siginfo
bsd-user: Create setup_sigframe_arch to setup sigframe context
bsd-user/arm/signal.c: Implement setup_sigframe_arch for arm
bsd-user/arm/signal.c: get_mcontext should zero vfp data
bsd-user: Remove vestiges of signal queueing code
bsd-user: Bring in docs from linux-user for signal_pending
bsd-user/arm/target_arch_cpu.h: Move EXCP_ATOMIC to match linux-user
bsd-user/signal.c: implement force_sig_fault
bsd-user/signal-common.h: Move signal functions prototypes to here
bsd-user/signal.c: Implement cpu_loop_exit_sigsegv
bsd-user/signal.c: implement cpu_loop_exit_sigbus
bsd-user/arm/arget_arch_cpu.h: Move EXCP_DEBUG and EXCP_BKPT together
bsd-user/arm/target_arch_cpu.h: Correct code pointer
bsd-user/arm/target_arch_cpu.h: Use force_sig_fault for EXCP_UDEF
bsd-user/arm/target_arch_cpu.h: Implement data faults
bsd-user/signal.c: implement abstract target / host signal translation
bsd-user/signal.c: Implement signal_init()
bsd-user/signal.c: Add si_type argument to queue_signal
bsd-user/host/arm/host-signal.h: Implement host_signal_*
bsd-user/host/i386/host-signal.h: Implement host_signal_*
bsd-user/host/x86_64/host-signal.h: Implement host_signal_*
bsd-user: Add host signals to the build
bsd-user: Add trace events for bsd-user
bsd-user/signal.c: host_to_target_siginfo_noswap
bsd-user/signal.c: Implement rewind_if_in_safe_syscall
bsd-user/signal.c: Implement host_signal_handler
bsd-user/strace.c: print_taken_signal
bsd-user/signal.c: Implement dump_core_and_abort
bsd-user/signal.c: Fill in queue_signal
bsd-user/signal.c: sigset manipulation routines.
bsd-user/signal.c: setup_frame
bsd-user/signal.c: handle_pending_signal
bsd-user/signal.c: tswap_siginfo
bsd-user/signal.c: process_pending_signals
bsd-user/signal.c: implement do_sigreturn
bsd-user/signal.c: implement do_sigaction
bsd-user/signal.c: do_sigaltstack
MAINTAINERS: Add tests/vm/*bsd to the list to get reviews on
bsd-user: Rename arg name for target_cpu_reset to env
bsd-user/freebsd/target_os_ucontext.h: Prefer env as arg name for
CPUArchState args
MAINTAINERS | 1 +
bsd-user/arm/signal.c | 59 +-
bsd-user/arm/target_arch_cpu.h | 101 +--
bsd-user/freebsd/target_os_siginfo.h | 15 +-
bsd-user/freebsd/target_os_signal.h | 3 +
bsd-user/freebsd/target_os_ucontext.h | 6 +-
bsd-user/host/arm/host-signal.h | 35 +
bsd-user/host/i386/host-signal.h | 37 +
bsd-user/host/x86_64/host-signal.h | 37 +
bsd-user/i386/signal.c | 13 +
bsd-user/i386/target_arch_cpu.h | 5 +-
bsd-user/main.c | 14 +-
bsd-user/qemu.h | 66 +-
bsd-user/signal-common.h | 70 ++
bsd-user/signal.c | 1008 ++++++++++++++++++++++++-
bsd-user/strace.c | 97 +++
bsd-user/syscall_defs.h | 1 +
bsd-user/trace-events | 11 +
bsd-user/trace.h | 1 +
bsd-user/x86_64/signal.c | 13 +
bsd-user/x86_64/target_arch_cpu.h | 5 +-
meson.build | 6 +-
22 files changed, 1490 insertions(+), 114 deletions(-)
create mode 100644 bsd-user/host/arm/host-signal.h
create mode 100644 bsd-user/host/i386/host-signal.h
create mode 100644 bsd-user/host/x86_64/host-signal.h
create mode 100644 bsd-user/signal-common.h
create mode 100644 bsd-user/trace-events
create mode 100644 bsd-user/trace.h
--
2.33.1
- [PULL 00/40] Bsd user arm 2022q1 patches,
Warner Losh <=
- [PULL 01/40] bsd-user: Complete FreeBSD siginfo, Warner Losh, 2022/01/31
- [PULL 06/40] bsd-user: Bring in docs from linux-user for signal_pending, Warner Losh, 2022/01/31
- [PULL 10/40] bsd-user/signal.c: Implement cpu_loop_exit_sigsegv, Warner Losh, 2022/01/31
- [PULL 07/40] bsd-user/arm/target_arch_cpu.h: Move EXCP_ATOMIC to match linux-user, Warner Losh, 2022/01/31
- [PULL 36/40] bsd-user/signal.c: implement do_sigaction, Warner Losh, 2022/01/31
- [PULL 37/40] bsd-user/signal.c: do_sigaltstack, Warner Losh, 2022/01/31
- [PULL 29/40] bsd-user/signal.c: Fill in queue_signal, Warner Losh, 2022/01/31
- [PULL 35/40] bsd-user/signal.c: implement do_sigreturn, Warner Losh, 2022/01/31
- [PULL 04/40] bsd-user/arm/signal.c: get_mcontext should zero vfp data, Warner Losh, 2022/01/31
- [PULL 19/40] bsd-user/host/arm/host-signal.h: Implement host_signal_*, Warner Losh, 2022/01/31