qemu/linux-user
Ilya Leoshkevich c107521e0e linux-user: Allow custom rt signal mappings
Some applications want to use low priority realtime signals (e.g.,
SIGRTMAX). Currently QEMU cannot map all target realtime signals to
host realtime signals, and chooses to sacrifice the end of the target
realtime signal range.

Allow users to choose how to map target realtime signals to host
realtime signals using the new -t option, the new QEMU_RTSIG_MAP
environment variable, and the new -Drtsig_map=\"...\" meson flag.
To simplify things, the meson flag is not per-target, because the
intended use case is app-specific qemu-user builds.

The mapping is specified using the "tsig hsig count[,...]" syntax.
Target realtime signals [tsig,tsig+count) are mapped to host realtime
signals [hsig,hsig+count). Care is taken to avoid double and
out-of-range mappings.

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20241029232211.206766-2-iii@linux.ibm.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2024-11-05 10:36:08 +00:00
..
aarch64 linux-user,aarch64: move to syscalltbl file 2024-09-22 09:30:18 +02:00
alpha target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
arm target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
generic linux-user: Split TARGET_PROT_* out of syscall_defs.h 2023-07-15 08:02:32 +01:00
hexagon linux-user,hexagon: move to syscalltbl file 2024-09-22 09:30:18 +02:00
hppa linux-user/hppa: fix -Werror=maybe-uninitialized false-positive 2024-10-02 16:14:29 +04:00
i386 linux-user/i386: Use explicit little-endian LD/ST API 2024-10-15 12:13:59 -03:00
include linux-user: cleanup unused linux-user/include/host directories 2023-08-08 20:44:08 +02:00
loongarch64 linux-user,loongarch: move to syscalltbl file 2024-09-22 09:30:18 +02:00
m68k target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
microblaze target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
mips target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
mips64 target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
openrisc linux-user,openrisc: move to syscalltbl file 2024-09-22 09:30:18 +02:00
ppc linux-user/ppc: Fix sigmask endianness issue in sigreturn 2024-10-22 13:45:03 -07:00
riscv linux-user,riscv: move to syscalltbl file 2024-09-22 09:30:18 +02:00
s390x target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
sh4 target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
sparc target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
x86_64 target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
xtensa target/ppc: Fix lxvx/stxvx facility check 2024-09-27 10:32:29 +01:00
cpu_loop-common.h linux-user: Add guest memory layout to exception dump 2022-10-25 09:20:40 +02:00
elfload.c linux-user/i386: Emulate orig_ax 2024-10-13 10:05:51 -07:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c accel/tcg: Move perf and debuginfo support to tcg/ 2024-01-29 21:04:10 +10:00
fd-trans.c linux-user: handle netlink flag NLA_F_NESTED 2023-03-10 20:45:47 +01:00
fd-trans.h linux-user: fix timerfd read endianness conversion 2023-03-10 20:42:00 +01:00
flat.h linux-user/flatload.c: Remove unused bFLT shared-library and ZFLAT code 2024-04-25 10:21:06 +01:00
flatload.c linux-user/flatload: Take mmap_lock in load_flt_binary() 2024-10-08 06:28:46 -07:00
gen-vdso-elfn.c.inc linux-user: Fix GDB complaining about system-supplied DSO string table index 2024-11-05 10:36:08 +00:00
gen-vdso.c linux-user: Fix GDB complaining about system-supplied DSO string table index 2024-11-05 10:36:08 +00:00
ioctls.h linux-user: Add ioctl for BLKBSZSET 2024-06-05 09:04:30 -07:00
linux_loop.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linuxload.c {linux,bsd}-user: Introduce get_task_state() 2024-03-06 12:35:19 +00:00
loader.h linux-user: Report AArch64 hwcap2 fields above bit 31 2023-11-02 13:36:45 +00:00
main.c linux-user: Allow custom rt signal mappings 2024-11-05 10:36:08 +00:00
meson.build linux-user,hexagon: move to syscalltbl file 2024-09-22 09:30:18 +02:00
mmap.c linux-user: Handle short reads in mmap_h_gt_g 2024-08-21 09:09:46 +10:00
qemu.h linux-user/i386: Emulate orig_ax 2024-10-13 10:05:51 -07:00
semihost.c semihosting: Remove qemu_semihosting_console_outs 2022-06-28 04:41:20 +05:30
signal-common.h linux-user: Allow custom rt signal mappings 2024-11-05 10:36:08 +00:00
signal.c linux-user: Allow custom rt signal mappings 2024-11-05 10:36:08 +00:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Trace rt_sigprocmask's sigsets 2024-10-22 13:45:03 -07:00
strace.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
strace.list linux-user: Trace rt_sigprocmask's sigsets 2024-10-22 13:45:03 -07:00
syscall_defs.h linux-user: Fix build failure caused by missing __u64 on musl 2024-10-22 13:45:03 -07:00
syscall_types.h linux-user: Add FITRIM ioctl 2024-04-24 15:46:00 -07:00
syscall.c tcg: Reset data_gen_ptr correctly 2024-10-24 15:21:42 +01:00
thunk.c user: Move 'thunk.h' from 'exec/user' to 'user' 2024-05-03 17:21:20 +02:00
trace-events linux-user: Rename user_force_sig tracepoint to match function name 2022-01-18 12:41:42 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c meson: Make DEBUG_REMAP a meson option 2024-04-24 15:46:00 -07:00
uname.c linux-user: Remove pointless CPU{ARCH}State casts 2022-05-23 22:47:20 +02:00
uname.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
user-internals.h linux-user: Remove unused handle_vm86_fault 2024-10-03 17:26:06 +03:00
user-mmap.h linux-user: Move shmat and shmdt implementations to mmap.c 2023-09-01 13:35:02 -07:00
vm86.c linux-user/vm86: Fix compilation with Clang 2024-10-13 10:34:00 -07:00