@@ -28,6 +28,7 @@
#include "qemu/atomic128.h"
#include "trace/trace-root.h"
#include "tcg/tcg-ldst.h"
+#include "user/cpu-target.h"
#include "internal.h"
__thread uintptr_t helper_retaddr;
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "disas/disas.h"
#include "qemu/path.h"
@@ -47,6 +47,7 @@
#include "trace/control.h"
#include "crypto/init.h"
#include "qemu/guest-random.h"
+#include "user/cpu-target.h"
#include "host-os.h"
#include "target_arch_cpu.h"
@@ -21,6 +21,7 @@
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "signal-common.h"
#include "trace.h"
#include "hw/core/tcg-cpu-ops.h"
@@ -649,47 +649,6 @@ static inline tb_page_addr_t get_page_addr_code_hostp(CPUArchState *env,
*/
MMUAccessType adjust_signal_pc(uintptr_t *pc, bool is_write);
-/**
- * handle_sigsegv_accerr_write:
- * @cpu: the cpu context
- * @old_set: the sigset_t from the signal ucontext_t
- * @host_pc: the host pc, adjusted for the signal
- * @host_addr: the host address of the fault
- *
- * Return true if the write fault has been handled, and should be re-tried.
- */
-bool handle_sigsegv_accerr_write(CPUState *cpu, sigset_t *old_set,
- uintptr_t host_pc, abi_ptr guest_addr);
-
-/**
- * cpu_loop_exit_sigsegv:
- * @cpu: the cpu context
- * @addr: the guest address of the fault
- * @access_type: access was read/write/execute
- * @maperr: true for invalid page, false for permission fault
- * @ra: host pc for unwinding
- *
- * Use the TCGCPUOps hook to record cpu state, do guest operating system
- * specific things to raise SIGSEGV, and jump to the main cpu loop.
- */
-void QEMU_NORETURN cpu_loop_exit_sigsegv(CPUState *cpu, target_ulong addr,
- MMUAccessType access_type,
- bool maperr, uintptr_t ra);
-
-/**
- * cpu_loop_exit_sigbus:
- * @cpu: the cpu context
- * @addr: the guest address of the alignment fault
- * @access_type: access was read/write/execute
- * @ra: host pc for unwinding
- *
- * Use the TCGCPUOps hook to record cpu state, do guest operating system
- * specific things to raise SIGBUS, and jump to the main cpu loop.
- */
-void QEMU_NORETURN cpu_loop_exit_sigbus(CPUState *cpu, target_ulong addr,
- MMUAccessType access_type,
- uintptr_t ra);
-
#else
static inline void mmap_lock(void) {}
static inline void mmap_unlock(void) {}
new file mode 100644
@@ -0,0 +1,55 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * cpu-target.h: user-mode target-specific execution prototypes
+ *
+ */
+
+#ifndef USER_CPU_TARGET_H
+#define USER_CPU_TARGET_H
+
+#include "exec/cpu-tlb.h"
+#include "exec/cpu_ldst.h" /* abi_ptr */
+
+/**
+ * handle_sigsegv_accerr_write:
+ * @cpu: the cpu context
+ * @old_set: the sigset_t from the signal ucontext_t
+ * @host_pc: the host pc, adjusted for the signal
+ * @host_addr: the host address of the fault
+ *
+ * Return true if the write fault has been handled, and should be re-tried.
+ */
+bool handle_sigsegv_accerr_write(CPUState *cpu, sigset_t *old_set,
+ uintptr_t host_pc, abi_ptr guest_addr);
+
+/**
+ * cpu_loop_exit_sigsegv:
+ * @cpu: the cpu context
+ * @addr: the guest address of the fault
+ * @access_type: access was read/write/execute
+ * @maperr: true for invalid page, false for permission fault
+ * @ra: host pc for unwinding
+ *
+ * Use the TCGCPUOps hook to record cpu state, do guest operating system
+ * specific things to raise SIGSEGV, and jump to the main cpu loop.
+ */
+void QEMU_NORETURN cpu_loop_exit_sigsegv(CPUState *cpu, target_ulong addr,
+ MMUAccessType access_type,
+ bool maperr, uintptr_t ra);
+
+/**
+ * cpu_loop_exit_sigbus:
+ * @cpu: the cpu context
+ * @addr: the guest address of the alignment fault
+ * @access_type: access was read/write/execute
+ * @ra: host pc for unwinding
+ *
+ * Use the TCGCPUOps hook to record cpu state, do guest operating system
+ * specific things to raise SIGBUS, and jump to the main cpu loop.
+ */
+void QEMU_NORETURN cpu_loop_exit_sigbus(CPUState *cpu, target_ulong addr,
+ MMUAccessType access_type,
+ uintptr_t ra);
+
+
+#endif
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "elf.h"
#include "cpu_loop-common.h"
@@ -18,6 +18,7 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "signal-common.h"
#include "linux-user/trace.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -6,6 +6,7 @@
#include <sys/shm.h>
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "signal-common.h"
#include "loader.h"
@@ -21,6 +21,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -18,6 +18,7 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "signal-common.h"
#include "linux-user/trace.h"
@@ -21,6 +21,7 @@
#include "qemu-common.h"
#include "qemu.h"
#include "qemu/timer.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -2,6 +2,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "loader.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -30,6 +30,7 @@
#include "qapi/error.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "qemu/path.h"
#include "qemu/queue.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "trace.h"
#include "exec/log.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "user-mmap.h"
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -21,6 +21,7 @@
#include "qemu-common.h"
#include "qemu.h"
#include "qemu/timer.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -18,6 +18,7 @@
*/
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "signal-common.h"
#include "linux-user/trace.h"
@@ -21,6 +21,7 @@
#include "qemu-common.h"
#include "qemu/error-report.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -25,6 +25,7 @@
#include <sys/resource.h>
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "strace.h"
#include "loader.h"
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu-common.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
@@ -127,6 +127,7 @@
#include "uname.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "strace.h"
#include "signal-common.h"
@@ -1,6 +1,7 @@
/* User memory access */
#include "qemu/osdep.h"
#include "qemu/cutils.h"
+#include "user/cpu-target.h"
#include "qemu.h"
#include "user-internals.h"
@@ -19,6 +19,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "cpu_loop-common.h"
#include "signal-common.h"
Move user-mode specific prototypes from "exec/exec-all.h" to "user/cpu-target.h". Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- accel/tcg/user-exec.c | 1 + bsd-user/elfload.c | 1 + bsd-user/main.c | 1 + bsd-user/signal.c | 1 + include/exec/exec-all.h | 41 ------------------------ include/user/cpu-target.h | 55 ++++++++++++++++++++++++++++++++ linux-user/aarch64/cpu_loop.c | 1 + linux-user/alpha/cpu_loop.c | 1 + linux-user/arm/cpu_loop.c | 1 + linux-user/arm/signal.c | 1 + linux-user/cris/cpu_loop.c | 1 + linux-user/elfload.c | 1 + linux-user/hexagon/cpu_loop.c | 1 + linux-user/hppa/cpu_loop.c | 1 + linux-user/hppa/signal.c | 1 + linux-user/i386/cpu_loop.c | 1 + linux-user/linuxload.c | 1 + linux-user/m68k/cpu_loop.c | 1 + linux-user/main.c | 1 + linux-user/microblaze/cpu_loop.c | 1 + linux-user/mips/cpu_loop.c | 1 + linux-user/mmap.c | 1 + linux-user/nios2/cpu_loop.c | 1 + linux-user/openrisc/cpu_loop.c | 1 + linux-user/ppc/cpu_loop.c | 1 + linux-user/ppc/signal.c | 1 + linux-user/riscv/cpu_loop.c | 1 + linux-user/s390x/cpu_loop.c | 1 + linux-user/sh4/cpu_loop.c | 1 + linux-user/signal.c | 1 + linux-user/sparc/cpu_loop.c | 1 + linux-user/syscall.c | 1 + linux-user/uaccess.c | 1 + linux-user/xtensa/cpu_loop.c | 1 + 34 files changed, 87 insertions(+), 41 deletions(-) create mode 100644 include/user/cpu-target.h