]> git.proxmox.com Git - mirror_qemu.git/commitdiff
linux-user: Split signal-related prototypes into signal-common.h
authorPeter Maydell <peter.maydell@linaro.org>
Wed, 8 Sep 2021 15:43:59 +0000 (16:43 +0100)
committerLaurent Vivier <laurent@vivier.eu>
Mon, 13 Sep 2021 18:35:44 +0000 (20:35 +0200)
Split the signal related prototypes into the existing header file
signal-common.h, and include it in those places that now require it.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20210908154405.15417-4-peter.maydell@linaro.org>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
23 files changed:
linux-user/aarch64/cpu_loop.c
linux-user/alpha/cpu_loop.c
linux-user/arm/cpu_loop.c
linux-user/cris/cpu_loop.c
linux-user/fd-trans.c
linux-user/hexagon/cpu_loop.c
linux-user/hppa/cpu_loop.c
linux-user/i386/cpu_loop.c
linux-user/m68k/cpu_loop.c
linux-user/main.c
linux-user/microblaze/cpu_loop.c
linux-user/mips/cpu_loop.c
linux-user/nios2/cpu_loop.c
linux-user/openrisc/cpu_loop.c
linux-user/ppc/cpu_loop.c
linux-user/qemu.h
linux-user/riscv/cpu_loop.c
linux-user/s390x/cpu_loop.c
linux-user/sh4/cpu_loop.c
linux-user/signal-common.h
linux-user/sparc/cpu_loop.c
linux-user/syscall.c
linux-user/xtensa/cpu_loop.c

index ee72a1c20f067b556291ce1112b8900dd944f806..5cac76f67b09274c3d18fa111c36ab923d1a782d 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 #include "qemu/guest-random.h"
 #include "semihosting/common-semi.h"
 #include "target/arm/syndrome.h"
index 7ce2461a02883a7cc7f2ef54769c848e53a6ba6f..8464047368a33abb9f594cbedd3ea77c86dc519b 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUAlphaState *env)
 {
index 69632d15be18d6612539e4ea1b6d89e4e6b4a0f7..5556d381463bfc277eca501a3648825e92956697 100644 (file)
@@ -22,6 +22,7 @@
 #include "qemu.h"
 #include "elf.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 #include "semihosting/common-semi.h"
 
 #define get_user_code_u32(x, gaddr, env)                \
index 334edddd1e293d7e236eb66c902af509ec8680b5..8c9fc3127ec3c680f5765ebdc0d3e2367ad25847 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUCRISState *env)
 {
index 86b6f484d30b76579b1957101b0483493a4b1991..48203c1af9d66ad0258a559ac6e7c8f94367ba66 100644 (file)
@@ -28,6 +28,7 @@
 #endif
 #include "qemu.h"
 #include "fd-trans.h"
+#include "signal-common.h"
 
 enum {
     QEMU_IFLA_BR_UNSPEC,
index bc34f5d7c300db9e67b55609699dd73559e5023e..348d2dc3413026b1c4cd13ca5023138886fb080a 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu/osdep.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 #include "internal.h"
 
 void cpu_loop(CPUHexagonState *env)
index 82d8183821ad7218eccbeb2e13b04c581504b874..c3661994a570bf39e2b3aa0eb034aac3d38f91b5 100644 (file)
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 static abi_ulong hppa_lws(CPUHPPAState *env)
 {
index f813e87294af84d75eabed6b7b58f225f3d29906..ee2e139a0634e66088a824fdb44c4f465f61ce83 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 /***********************************************************/
 /* CPUX86 core interface */
index c7a500b58c48b022b71776aa2ebbe3bc594a697a..3a330401bf2dca6e60b57f2152c62d3fb9507d9e 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUM68KState *env)
 {
index a6094563b6bf6fec3eb38a5265a590b1205a56fb..4f51670735747f4b6cc0fe69138a234c7078f361 100644 (file)
@@ -49,6 +49,7 @@
 #include "cpu_loop-common.h"
 #include "crypto/init.h"
 #include "fd-trans.h"
+#include "signal-common.h"
 
 #ifndef AT_FLAGS_PRESERVE_ARGV0
 #define AT_FLAGS_PRESERVE_ARGV0_BIT 0
index c3396a6e09bd1dfe58c3f12d5b470ac746995b4c..0d2c8f8dea8ac51455514b2bbe4412257de54e05 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUMBState *env)
 {
index 9d813ece4e75a0537ef79c544d8b37bdc34d994a..7dfaa0cb1e11d006724e33dac193549c6b1b4864 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 #include "elf.h"
 #include "internal.h"
 #include "fpu_helper.h"
index 9869083fa192611fe8c0f01f0822a9ad718f5166..68f95d7ad7b26f12de753dc6d4ca86a8bc7ce1a7 100644 (file)
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUNios2State *env)
 {
index b33fa77718757b60459f58d84f5e8e3c8a98cc49..f6c67859887b763db0c2e38190e20d4543d328c6 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUOpenRISCState *env)
 {
index fa91ea0eed99ab90a1e9977793318b4ae9deab11..ace431238c27be3da5836e8fb87c678dd3d722cc 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 static inline uint64_t cpu_ppc_get_tb(CPUPPCState *env)
 {
index ad2d49fed9fb263d40f4f274b808e202626c2506..76d3f5e7eb98e766078bb8c1ba9c05bd190bfe28 100644 (file)
@@ -415,42 +415,6 @@ extern long safe_syscall_base(int *pending, long number, ...);
 /* syscall.c */
 int host_to_target_waitstatus(int status);
 
-/* signal.c */
-void process_pending_signals(CPUArchState *cpu_env);
-void signal_init(void);
-int queue_signal(CPUArchState *env, int sig, int si_type,
-                 target_siginfo_t *info);
-void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info);
-void target_to_host_siginfo(siginfo_t *info, const target_siginfo_t *tinfo);
-int target_to_host_signal(int sig);
-int host_to_target_signal(int sig);
-long do_sigreturn(CPUArchState *env);
-long do_rt_sigreturn(CPUArchState *env);
-abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr,
-                        CPUArchState *env);
-int do_sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
-abi_long do_swapcontext(CPUArchState *env, abi_ulong uold_ctx,
-                        abi_ulong unew_ctx, abi_long ctx_size);
-/**
- * block_signals: block all signals while handling this guest syscall
- *
- * Block all signals, and arrange that the signal mask is returned to
- * its correct value for the guest before we resume execution of guest code.
- * If this function returns non-zero, then the caller should immediately
- * return -TARGET_ERESTARTSYS to the main loop, which will take the pending
- * signal and restart execution of the syscall.
- * If block_signals() returns zero, then the caller can continue with
- * emulation of the system call knowing that no signals can be taken
- * (and therefore that no race conditions will result).
- * This should only be called once, because if it is called a second time
- * it will always return non-zero. (Think of it like a mutex that can't
- * be recursively locked.)
- * Signals will be unblocked again by process_pending_signals().
- *
- * Return value: non-zero if there was a pending signal, zero if not.
- */
-int block_signals(void); /* Returns non zero if signal pending */
-
 #ifdef TARGET_I386
 /* vm86.c */
 void save_v86_state(CPUX86State *env);
index 74a9628dc9b5506d934569e6ddc8d4bb0e059d67..47978c4e3543997d2c2fbde3523e65de19637e3b 100644 (file)
@@ -22,6 +22,7 @@
 #include "qemu/error-report.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 #include "elf.h"
 #include "semihosting/common-semi.h"
 
index 6a69a6dd2609365443cd0ae7b503e080bf6c4675..ae70f630532d961aa3ed8d679a1ff1383896d4a2 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 /* s390x masks the fault address it reports in si_addr for SIGSEGV and SIGBUS */
 #define S390X_FAIL_ADDR_MASK -4096LL
index 222ed1c670c453ac0dae911eb456aff4fcdcbf6f..06e4a4d00751acc4ad97067458265a17b73671a4 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 void cpu_loop(CPUSH4State *env)
 {
index ea86328b289a8907122299bffb77eb8b9bff4128..58ea23f6ea94b6d20da8c961f521f4addae6ee8a 100644 (file)
@@ -47,4 +47,40 @@ void setup_frame(int sig, struct target_sigaction *ka,
 void setup_rt_frame(int sig, struct target_sigaction *ka,
                     target_siginfo_t *info,
                     target_sigset_t *set, CPUArchState *env);
+
+void process_pending_signals(CPUArchState *cpu_env);
+void signal_init(void);
+int queue_signal(CPUArchState *env, int sig, int si_type,
+                 target_siginfo_t *info);
+void host_to_target_siginfo(target_siginfo_t *tinfo, const siginfo_t *info);
+void target_to_host_siginfo(siginfo_t *info, const target_siginfo_t *tinfo);
+int target_to_host_signal(int sig);
+int host_to_target_signal(int sig);
+long do_sigreturn(CPUArchState *env);
+long do_rt_sigreturn(CPUArchState *env);
+abi_long do_sigaltstack(abi_ulong uss_addr, abi_ulong uoss_addr,
+                        CPUArchState *env);
+int do_sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
+abi_long do_swapcontext(CPUArchState *env, abi_ulong uold_ctx,
+                        abi_ulong unew_ctx, abi_long ctx_size);
+/**
+ * block_signals: block all signals while handling this guest syscall
+ *
+ * Block all signals, and arrange that the signal mask is returned to
+ * its correct value for the guest before we resume execution of guest code.
+ * If this function returns non-zero, then the caller should immediately
+ * return -TARGET_ERESTARTSYS to the main loop, which will take the pending
+ * signal and restart execution of the syscall.
+ * If block_signals() returns zero, then the caller can continue with
+ * emulation of the system call knowing that no signals can be taken
+ * (and therefore that no race conditions will result).
+ * This should only be called once, because if it is called a second time
+ * it will always return non-zero. (Think of it like a mutex that can't
+ * be recursively locked.)
+ * Signals will be unblocked again by process_pending_signals().
+ *
+ * Return value: non-zero if there was a pending signal, zero if not.
+ */
+int block_signals(void); /* Returns non zero if signal pending */
+
 #endif
index 02532f198df83c5cd83b9f0bc7bea63e82c03c8c..b2c0611194308e48abd11c3e61b6a487d046a1e9 100644 (file)
@@ -21,6 +21,7 @@
 #include "qemu-common.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 #define SPARC64_STACK_BIAS 2047
 
index 4ac2801e495acfa56cac7f3d645330c11c6c9f77..ad635ed3a5fdcf2f70579da557731f150e1b5f7c 100644 (file)
 
 #include "qemu.h"
 #include "strace.h"
+#include "signal-common.h"
 #include "qemu/guest-random.h"
 #include "qemu/selfmap.h"
 #include "user/syscall-trace.h"
index 64831c91996adfa51568edd329910df632f79e2f..bb5335e2b6cbcff1b0cc9304e1533fc9da65fd01 100644 (file)
@@ -20,6 +20,7 @@
 #include "qemu/osdep.h"
 #include "qemu.h"
 #include "cpu_loop-common.h"
+#include "signal-common.h"
 
 static void xtensa_rfw(CPUXtensaState *env)
 {