user: Introduce user/signal.h
authorIlya Leoshkevich <iii@linux.ibm.com>
Fri, 7 Feb 2025 15:31:07 +0000 (15:31 +0000)
committerAlex Bennée <alex.bennee@linaro.org>
Mon, 10 Feb 2025 13:47:59 +0000 (13:47 +0000)
gdbstub needs target_to_host_signal(), so move its declaration to a
public header.

Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Warner Losh <imp@bsdimp.com>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Message-Id: <20250117001542.8290-4-iii@linux.ibm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20250207153112.3939799-13-alex.bennee@linaro.org>

bsd-user/signal-common.h
bsd-user/signal.c
include/user/signal.h [new file with mode: 0644]
linux-user/signal-common.h
linux-user/signal.c
linux-user/syscall.c

index 77d7c7a78b7f72778630633bcbb5a785ce82703e..4e634e04a30d3a3d6cc01135b95b9d08d0672b84 100644 (file)
@@ -42,7 +42,6 @@ void process_pending_signals(CPUArchState *env);
 void queue_signal(CPUArchState *env, int sig, int si_type,
                   target_siginfo_t *info);
 void signal_init(void);
-int target_to_host_signal(int sig);
 void target_to_host_sigset(sigset_t *d, const target_sigset_t *s);
 
 /*
index b4e1458237a0f98269c919b48874422b8a49c215..8c51f6ce653191fc4340975f970b35dc3ba81977 100644 (file)
@@ -24,6 +24,7 @@
 #include "user/cpu_loop.h"
 #include "exec/page-protection.h"
 #include "user/page-protection.h"
+#include "user/signal.h"
 #include "user/tswap-target.h"
 #include "gdbstub/user.h"
 #include "signal-common.h"
diff --git a/include/user/signal.h b/include/user/signal.h
new file mode 100644 (file)
index 0000000..19b6b9e
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Signal-related declarations.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#ifndef USER_SIGNAL_H
+#define USER_SIGNAL_H
+
+#ifndef CONFIG_USER_ONLY
+#error Cannot include this header from system emulation
+#endif
+
+/**
+ * target_to_host_signal:
+ * @sig: target signal.
+ *
+ * On success, return the host signal between 0 (inclusive) and NSIG
+ * (exclusive) corresponding to the target signal @sig. Return any other value
+ * on failure.
+ */
+int target_to_host_signal(int sig);
+
+#endif
index 8584d9ecc2ab27f276cd19b3baa8cefc5ac11042..196d2406f86eefe78398fdd72eebea200b2b26b5 100644 (file)
@@ -61,7 +61,6 @@ void 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);
index 087c4d270e403f8a77b9e09606082fd6a72d4b5b..bffbef235cd7006e29c5f73216b0e0d2ca685ca6 100644 (file)
@@ -36,6 +36,7 @@
 #include "user/cpu_loop.h"
 #include "user/page-protection.h"
 #include "user/safe-syscall.h"
+#include "user/signal.h"
 #include "tcg/tcg.h"
 
 /* target_siginfo_t must fit in gdbstub's siginfo save area. */
index 6ee02383daf39e356d5b4a4e641793be9c5b1bb2..90afaa4426f082b90ca3141bcfc619b9b30c5886 100644 (file)
 #include "user-mmap.h"
 #include "user/page-protection.h"
 #include "user/safe-syscall.h"
+#include "user/signal.h"
 #include "qemu/guest-random.h"
 #include "qemu/selfmap.h"
 #include "user/syscall-trace.h"