xemu/linux-user
Peter Maydell af7969605e linux-user: Provide new force_sig_fault() function
In many places in the linux-user code we need to queue a signal for
the guest using the QEMU_SI_FAULT si_type.  This requires that the
caller sets up and passes us a target_siginfo, including setting the
appropriate part of the _sifields union for the si_type. In a number
of places the code forgets to set the _sifields union field.

Provide a new force_sig_fault() function, which does the same thing
as the Linux kernel function of that name -- it takes the signal
number, the si_code value and the address to use in
_sifields._sigfault, and assembles the target_siginfo itself.  This
makes the callsites simpler and means it's harder to forget to pass
in an address value.

We follow force_sig() and the kernel's force_sig_fault() in not
requiring the caller to pass in the CPU pointer but always acting
on the CPU of the current thread.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210813131809.28655-6-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
2021-09-23 14:42:55 +02:00
..
aarch64 linux-user/aarch64: Set siginfo_t addr field for SIGTRAP signals 2021-09-23 14:42:55 +02:00
alpha linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
arm linux-user/arm: Use force_sig() to deliver fpa11 emulation SIGFPE 2021-09-23 14:42:55 +02:00
cris linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
generic linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
hexagon linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
host linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
hppa linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
i386 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
m68k linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
microblaze linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
mips linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
mips64 linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
nios2 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
openrisc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ppc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
riscv linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
s390x linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
sh4 linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
sparc linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
x86_64 linux-user: update syscall.tbl to Linux v5.13 2021-07-13 13:59:59 +02:00
xtensa linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
cpu_loop-common.h cpu: Replace ENV_GET_CPU with env_cpu 2019-06-10 07:03:34 -07:00
elfload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 2021-07-12 21:54:46 +02:00
flat.h linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
ioctls.h linux-user: Conditionalize TUNSETVNETLE 2021-01-07 05:09:06 -10:00
linux_loop.h linux-user: Add loop control ioctls 2016-07-19 15:22:33 +03:00
linuxload.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c Pull request linux-user 20210916 2021-09-16 21:09:18 +01:00
meson.build linux-user/sparc: Merge sparc64/ into sparc/ 2021-05-15 21:43:23 +02:00
mmap.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
qemu.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
safe-syscall.h linux-user: Split safe-syscall macro into its own header 2021-09-13 20:35:45 +02:00
safe-syscall.S linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
semihost.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
signal-common.h linux-user: Provide new force_sig_fault() function 2021-09-23 14:42:55 +02:00
signal.c linux-user: Provide new force_sig_fault() function 2021-09-23 14:42:55 +02:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
strace.h linux-user: Split strace prototypes into strace.h 2021-09-13 20:35:44 +02:00
strace.list linux-user: Add copy_file_range to strace.list 2021-05-18 07:09:58 +02:00
syscall_defs.h linux-user: Extract target errno to 'target_errno_defs.h' 2021-07-12 21:53:35 +02:00
syscall_types.h linux-user: Add support for btrfs ioctls used to scrub a filesystem 2020-09-03 01:09:35 +02:00
syscall.c linux-user: Check lock_user result for ip_mreq_source sockopts 2021-09-16 17:04:21 +02:00
target_flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
trace-events linux-user/trace-events: fix minor typo in format string 2021-06-17 16:09:11 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
user-internals.h linux-user: Drop unneeded includes from qemu.h 2021-09-13 20:35:45 +02:00
user-mmap.h linux-user: Split mmap prototypes into user-mmap.h 2021-09-13 20:35:45 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00