* [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h'
@ 2022-02-09 23:00 Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header Philippe Mathieu-Daudé via
` (8 more replies)
0 siblings, 9 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
- Add missing headers
- Merge exec/user/ to user/
- Extract MMUAccessType from QOM "hw/core/cpu.h" to "exec/cpu-tlb.h"
- Extract user-specific declarations to "user/cpu-{common,target}.h"
- Share preexit_cleanup() from Linux with BSD
More to come, but flushing for early feedback.
Based-on: <20220209215446.58402-1-f4bug@amsat.org>
Philippe Mathieu-Daudé (9):
accel/tcg: Add missing 'tcg/tcg.h' header
coverity-scan: Cover common-user/
include: Move exec/user/ to user/
linux-user/exit: Add missing 'qemu/plugin.h' header
linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header
exec: Define MMUAccessType in 'exec/cpu-tlb.h' header
user: Declare target-specific prototypes in 'user/cpu-target.h'
user: Declare target-agnostic prototypes in 'user/cpu-common.h'
user: Share preexit_cleanup() with linux and bsd implementations
accel/tcg/tcg-accel-ops-icount.c | 1 +
accel/tcg/tcg-accel-ops-mttcg.c | 1 +
accel/tcg/tcg-accel-ops-rr.c | 1 +
accel/tcg/tcg-accel-ops.c | 1 +
accel/tcg/user-exec.c | 1 +
bsd-user/elfload.c | 1 +
bsd-user/main.c | 1 +
bsd-user/qemu.h | 6 ++--
bsd-user/signal.c | 1 +
{linux-user => common-user}/exit.c | 4 +--
common-user/meson.build | 1 +
include/exec/cpu-all.h | 5 ++-
include/exec/cpu-defs.h | 1 +
include/exec/cpu-tlb.h | 16 +++++++++
include/exec/cpu_ldst.h | 1 +
include/exec/exec-all.h | 54 ++--------------------------
include/hw/core/cpu.h | 6 ----
include/hw/core/tcg-cpu-ops.h | 1 +
include/{exec => }/user/abitypes.h | 0
include/user/cpu-common.h | 36 +++++++++++++++++++
include/user/cpu-target.h | 56 +++++++++++++++++++++++++++++
include/user/safe-syscall.h | 6 ++--
include/{exec => }/user/thunk.h | 2 +-
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/cpu_loop-common.h | 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/meson.build | 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/qemu.h | 2 +-
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/thunk.c | 2 +-
linux-user/uaccess.c | 1 +
linux-user/user-internals.h | 12 +------
linux-user/xtensa/cpu_loop.c | 1 +
scripts/coverity-scan/COMPONENTS.md | 2 +-
target/arm/internals.h | 1 +
target/mips/internal.h | 1 +
target/ppc/internal.h | 2 ++
target/ppc/mmu-hash32.h | 2 ++
target/ppc/mmu-hash64.h | 2 ++
target/ppc/mmu-radix64.h | 2 ++
target/s390x/s390x-internal.h | 2 ++
64 files changed, 178 insertions(+), 85 deletions(-)
rename {linux-user => common-user}/exit.c (95%)
create mode 100644 include/exec/cpu-tlb.h
rename include/{exec => }/user/abitypes.h (100%)
create mode 100644 include/user/cpu-common.h
create mode 100644 include/user/cpu-target.h
rename include/{exec => }/user/thunk.h (99%)
--
2.34.1
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:25 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 2/9] coverity-scan: Cover common-user/ Philippe Mathieu-Daudé via
` (7 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
accel/tcg/tcg-accel-ops-icount.c | 1 +
accel/tcg/tcg-accel-ops-mttcg.c | 1 +
accel/tcg/tcg-accel-ops-rr.c | 1 +
accel/tcg/tcg-accel-ops.c | 1 +
4 files changed, 4 insertions(+)
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
index bdaf2c943b..379a9d44f4 100644
--- a/accel/tcg/tcg-accel-ops-icount.c
+++ b/accel/tcg/tcg-accel-ops-icount.c
@@ -31,6 +31,7 @@
#include "qemu/main-loop.h"
#include "qemu/guest-random.h"
#include "exec/exec-all.h"
+#include "tcg/tcg.h"
#include "tcg-accel-ops.h"
#include "tcg-accel-ops-icount.h"
diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttcg.c
index dc421c8fd7..de7dcb02e6 100644
--- a/accel/tcg/tcg-accel-ops-mttcg.c
+++ b/accel/tcg/tcg-accel-ops-mttcg.c
@@ -33,6 +33,7 @@
#include "qemu/guest-random.h"
#include "exec/exec-all.h"
#include "hw/boards.h"
+#include "tcg/tcg.h"
#include "tcg-accel-ops.h"
#include "tcg-accel-ops-mttcg.h"
diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c
index a805fb6bdd..889d0882a2 100644
--- a/accel/tcg/tcg-accel-ops-rr.c
+++ b/accel/tcg/tcg-accel-ops-rr.c
@@ -32,6 +32,7 @@
#include "qemu/notify.h"
#include "qemu/guest-random.h"
#include "exec/exec-all.h"
+#include "tcg/tcg.h"
#include "tcg-accel-ops.h"
#include "tcg-accel-ops-rr.h"
diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
index ea7dcad674..58e4b09043 100644
--- a/accel/tcg/tcg-accel-ops.c
+++ b/accel/tcg/tcg-accel-ops.c
@@ -33,6 +33,7 @@
#include "qemu/main-loop.h"
#include "qemu/guest-random.h"
#include "exec/exec-all.h"
+#include "tcg/tcg.h"
#include "tcg-accel-ops.h"
#include "tcg-accel-ops-mttcg.h"
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 2/9] coverity-scan: Cover common-user/
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:08 ` Richard Henderson
2022-02-11 11:56 ` Peter Maydell
2022-02-09 23:00 ` [PATCH 3/9] include: Move exec/user/ to user/ Philippe Mathieu-Daudé via
` (6 subsequent siblings)
8 siblings, 2 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
common-user/ has been added in commit bbf15aaf7c
("common-user: Move safe-syscall.* from linux-user").
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
scripts/coverity-scan/COMPONENTS.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/coverity-scan/COMPONENTS.md b/scripts/coverity-scan/COMPONENTS.md
index 183f26a32c..cea6695ecd 100644
--- a/scripts/coverity-scan/COMPONENTS.md
+++ b/scripts/coverity-scan/COMPONENTS.md
@@ -127,7 +127,7 @@ usb
~ (/qemu)?(/hw/usb/.*|/include/hw/usb/.*)
user
- ~ (/qemu)?(/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
+ ~ (/qemu)?(/common-user/.*|/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
util
~ (/qemu)?(/util/.*|/include/qemu/.*)
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 3/9] include: Move exec/user/ to user/
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 2/9] coverity-scan: Cover common-user/ Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:12 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 4/9] linux-user/exit: Add missing 'qemu/plugin.h' header Philippe Mathieu-Daudé via
` (5 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
Avoid spreading the headers in multiple directories,
unify exec/user/ and user/.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
bsd-user/qemu.h | 4 ++--
include/exec/cpu-all.h | 2 +-
include/{exec => }/user/abitypes.h | 0
include/user/safe-syscall.h | 6 +++---
include/{exec => }/user/thunk.h | 2 +-
linux-user/qemu.h | 2 +-
linux-user/thunk.c | 2 +-
linux-user/user-internals.h | 2 +-
scripts/coverity-scan/COMPONENTS.md | 2 +-
9 files changed, 11 insertions(+), 11 deletions(-)
rename include/{exec => }/user/abitypes.h (100%)
rename include/{exec => }/user/thunk.h (99%)
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 02921ac8b3..2f67776b0b 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -25,7 +25,7 @@
#undef DEBUG_REMAP
-#include "exec/user/abitypes.h"
+#include "user/abitypes.h"
extern char **environ;
@@ -36,7 +36,7 @@ enum BSDType {
};
extern enum BSDType bsd_type;
-#include "exec/user/thunk.h"
+#include "user/thunk.h"
#include "target_arch.h"
#include "syscall_defs.h"
#include "target_syscall.h"
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index c0f0fab28a..08b2894274 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -145,7 +145,7 @@ static inline void tswap64s(uint64_t *s)
/* MMU memory access macros */
#if defined(CONFIG_USER_ONLY)
-#include "exec/user/abitypes.h"
+#include "user/abitypes.h"
/* On some host systems the guest address space is reserved on the host.
* This allows the guest address space to be offset to a convenient location.
diff --git a/include/exec/user/abitypes.h b/include/user/abitypes.h
similarity index 100%
rename from include/exec/user/abitypes.h
rename to include/user/abitypes.h
diff --git a/include/user/safe-syscall.h b/include/user/safe-syscall.h
index 61a04e2b5a..b2cb76e05b 100644
--- a/include/user/safe-syscall.h
+++ b/include/user/safe-syscall.h
@@ -1,5 +1,5 @@
/*
- * safe-syscall.h: prototypes for linux-user signal-race-safe syscalls
+ * safe-syscall.h: prototypes for user signal-race-safe syscalls
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -15,8 +15,8 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
-#ifndef LINUX_USER_SAFE_SYSCALL_H
-#define LINUX_USER_SAFE_SYSCALL_H
+#ifndef USER_SAFE_SYSCALL_H
+#define USER_SAFE_SYSCALL_H
/**
* safe_syscall:
diff --git a/include/exec/user/thunk.h b/include/user/thunk.h
similarity index 99%
rename from include/exec/user/thunk.h
rename to include/user/thunk.h
index 300a840d58..b5796f4304 100644
--- a/include/exec/user/thunk.h
+++ b/include/user/thunk.h
@@ -21,7 +21,7 @@
#define THUNK_H
#include "cpu.h"
-#include "exec/user/abitypes.h"
+#include "user/abitypes.h"
/* types enums definitions */
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 7910ce59cc..b6775f112b 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -6,7 +6,7 @@
#undef DEBUG_REMAP
-#include "exec/user/abitypes.h"
+#include "user/abitypes.h"
#include "syscall_defs.h"
#include "target_syscall.h"
diff --git a/linux-user/thunk.c b/linux-user/thunk.c
index dac4bf11c6..cd85bbc825 100644
--- a/linux-user/thunk.c
+++ b/linux-user/thunk.c
@@ -20,7 +20,7 @@
#include "qemu/log.h"
#include "qemu.h"
-#include "exec/user/thunk.h"
+#include "user/thunk.h"
//#define DEBUG
diff --git a/linux-user/user-internals.h b/linux-user/user-internals.h
index a8fdd6933b..4d0f682aea 100644
--- a/linux-user/user-internals.h
+++ b/linux-user/user-internals.h
@@ -18,7 +18,7 @@
#ifndef LINUX_USER_USER_INTERNALS_H
#define LINUX_USER_USER_INTERNALS_H
-#include "exec/user/thunk.h"
+#include "user/thunk.h"
#include "exec/exec-all.h"
#include "qemu/log.h"
diff --git a/scripts/coverity-scan/COMPONENTS.md b/scripts/coverity-scan/COMPONENTS.md
index cea6695ecd..0571362a45 100644
--- a/scripts/coverity-scan/COMPONENTS.md
+++ b/scripts/coverity-scan/COMPONENTS.md
@@ -127,7 +127,7 @@ usb
~ (/qemu)?(/hw/usb/.*|/include/hw/usb/.*)
user
- ~ (/qemu)?(/common-user/.*|/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
+ ~ (/qemu)?(/common-user/.*|/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/user/.*)
util
~ (/qemu)?(/util/.*|/include/qemu/.*)
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 4/9] linux-user/exit: Add missing 'qemu/plugin.h' header
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
` (2 preceding siblings ...)
2022-02-09 23:00 ` [PATCH 3/9] include: Move exec/user/ to user/ Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:13 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 5/9] linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header Philippe Mathieu-Daudé via
` (4 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
qemu_plugin_user_exit() is declared in "qemu/plugin.h".
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
linux-user/exit.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/linux-user/exit.c b/linux-user/exit.c
index fa6ef0b9b4..10989f17f8 100644
--- a/linux-user/exit.c
+++ b/linux-user/exit.c
@@ -17,6 +17,7 @@
* along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
#include "qemu/osdep.h"
+#include "qemu/plugin.h"
#include "exec/gdbstub.h"
#include "qemu.h"
#include "user-internals.h"
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 5/9] linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
` (3 preceding siblings ...)
2022-02-09 23:00 ` [PATCH 4/9] linux-user/exit: Add missing 'qemu/plugin.h' header Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:13 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header Philippe Mathieu-Daudé via
` (3 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
env_cpu() is declared in "exec/cpu-all.h".
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
linux-user/cpu_loop-common.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/linux-user/cpu_loop-common.h b/linux-user/cpu_loop-common.h
index dc0042e4de..b0fd1ea3b1 100644
--- a/linux-user/cpu_loop-common.h
+++ b/linux-user/cpu_loop-common.h
@@ -20,6 +20,7 @@
#ifndef CPU_LOOP_COMMON_H
#define CPU_LOOP_COMMON_H
+#include "exec/cpu-all.h"
#include "exec/log.h"
#include "special-errno.h"
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
` (4 preceding siblings ...)
2022-02-09 23:00 ` [PATCH 5/9] linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:14 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h' Philippe Mathieu-Daudé via
` (2 subsequent siblings)
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
To reduce the inclusion of "hw/core/cpu.h", extract
MMUAccessType to its own "exec/cpu-tlb.h" header.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
include/exec/cpu-defs.h | 1 +
include/exec/cpu-tlb.h | 16 ++++++++++++++++
include/exec/cpu_ldst.h | 1 +
include/exec/exec-all.h | 3 +++
include/hw/core/cpu.h | 6 ------
include/hw/core/tcg-cpu-ops.h | 1 +
target/arm/internals.h | 1 +
target/mips/internal.h | 1 +
target/ppc/internal.h | 2 ++
target/ppc/mmu-hash32.h | 2 ++
target/ppc/mmu-hash64.h | 2 ++
target/ppc/mmu-radix64.h | 2 ++
target/s390x/s390x-internal.h | 2 ++
13 files changed, 34 insertions(+), 6 deletions(-)
create mode 100644 include/exec/cpu-tlb.h
diff --git a/include/exec/cpu-defs.h b/include/exec/cpu-defs.h
index ba3cd32a1e..c7eefb8633 100644
--- a/include/exec/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -29,6 +29,7 @@
#include "exec/hwaddr.h"
#endif
#include "exec/memattrs.h"
+#include "exec/cpu-tlb.h"
#include "hw/core/cpu.h"
#include "cpu-param.h"
diff --git a/include/exec/cpu-tlb.h b/include/exec/cpu-tlb.h
new file mode 100644
index 0000000000..dccf91a817
--- /dev/null
+++ b/include/exec/cpu-tlb.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * cpu-tlb.h: MMUAccessType definitions
+ *
+ */
+
+#ifndef EXEC_CPU_TLB_H
+#define EXEC_CPU_TLB_H
+
+typedef enum MMUAccessType {
+ MMU_DATA_LOAD = 0,
+ MMU_DATA_STORE = 1,
+ MMU_INST_FETCH = 2
+} MMUAccessType;
+
+#endif
diff --git a/include/exec/cpu_ldst.h b/include/exec/cpu_ldst.h
index 5c999966de..3784316471 100644
--- a/include/exec/cpu_ldst.h
+++ b/include/exec/cpu_ldst.h
@@ -63,6 +63,7 @@
#define CPU_LDST_H
#include "exec/memopidx.h"
+#include "exec/cpu-tlb.h"
#include "qemu/int128.h"
#include "cpu.h"
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index d2cb0981f4..537f465f54 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -381,6 +381,9 @@ static inline void tlb_flush_range_by_mmuidx_all_cpus_synced(CPUState *cpu,
{
}
#endif
+
+#include "exec/cpu-tlb.h"
+
/**
* probe_access:
* @env: CPUArchState
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index c9d41e4ece..0b844cbf27 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -55,12 +55,6 @@ typedef struct CPUClass CPUClass;
DECLARE_CLASS_CHECKERS(CPUClass, CPU,
TYPE_CPU)
-typedef enum MMUAccessType {
- MMU_DATA_LOAD = 0,
- MMU_DATA_STORE = 1,
- MMU_INST_FETCH = 2
-} MMUAccessType;
-
typedef struct CPUWatchpoint CPUWatchpoint;
/* see tcg-cpu-ops.h */
diff --git a/include/hw/core/tcg-cpu-ops.h b/include/hw/core/tcg-cpu-ops.h
index e13898553a..2c81fff428 100644
--- a/include/hw/core/tcg-cpu-ops.h
+++ b/include/hw/core/tcg-cpu-ops.h
@@ -10,6 +10,7 @@
#ifndef TCG_CPU_OPS_H
#define TCG_CPU_OPS_H
+#include "exec/cpu-tlb.h"
#include "hw/core/cpu.h"
struct TCGCPUOps {
diff --git a/target/arm/internals.h b/target/arm/internals.h
index 3f05748ea4..4c006aa6b4 100644
--- a/target/arm/internals.h
+++ b/target/arm/internals.h
@@ -25,6 +25,7 @@
#ifndef TARGET_ARM_INTERNALS_H
#define TARGET_ARM_INTERNALS_H
+#include "exec/cpu-tlb.h"
#include "hw/registerfields.h"
#include "tcg/tcg-gvec-desc.h"
#include "syndrome.h"
diff --git a/target/mips/internal.h b/target/mips/internal.h
index ac6e03e2f2..f0f885005f 100644
--- a/target/mips/internal.h
+++ b/target/mips/internal.h
@@ -8,6 +8,7 @@
#ifndef MIPS_INTERNAL_H
#define MIPS_INTERNAL_H
+#include "exec/cpu-tlb.h"
#include "exec/memattrs.h"
#ifdef CONFIG_TCG
#include "tcg/tcg-internal.h"
diff --git a/target/ppc/internal.h b/target/ppc/internal.h
index 6aa9484f34..20010f53e7 100644
--- a/target/ppc/internal.h
+++ b/target/ppc/internal.h
@@ -18,6 +18,8 @@
#ifndef PPC_INTERNAL_H
#define PPC_INTERNAL_H
+#include "exec/cpu-tlb.h"
+
#define FUNC_MASK(name, ret_type, size, max_val) \
static inline ret_type name(uint##size##_t start, \
uint##size##_t end) \
diff --git a/target/ppc/mmu-hash32.h b/target/ppc/mmu-hash32.h
index 3892b693d6..c6fcdebac5 100644
--- a/target/ppc/mmu-hash32.h
+++ b/target/ppc/mmu-hash32.h
@@ -3,6 +3,8 @@
#ifndef CONFIG_USER_ONLY
+#include "exec/cpu-tlb.h"
+
hwaddr get_pteg_offset32(PowerPCCPU *cpu, hwaddr hash);
bool ppc_hash32_xlate(PowerPCCPU *cpu, vaddr eaddr, MMUAccessType access_type,
hwaddr *raddrp, int *psizep, int *protp, int mmu_idx,
diff --git a/target/ppc/mmu-hash64.h b/target/ppc/mmu-hash64.h
index 1496955d38..002dc4aec7 100644
--- a/target/ppc/mmu-hash64.h
+++ b/target/ppc/mmu-hash64.h
@@ -3,6 +3,8 @@
#ifndef CONFIG_USER_ONLY
+#include "exec/cpu-tlb.h"
+
#ifdef TARGET_PPC64
void dump_slb(PowerPCCPU *cpu);
int ppc_store_slb(PowerPCCPU *cpu, target_ulong slot,
diff --git a/target/ppc/mmu-radix64.h b/target/ppc/mmu-radix64.h
index 4c768aa5cc..601967ae82 100644
--- a/target/ppc/mmu-radix64.h
+++ b/target/ppc/mmu-radix64.h
@@ -3,6 +3,8 @@
#ifndef CONFIG_USER_ONLY
+#include "exec/cpu-tlb.h"
+
/* Radix Quadrants */
#define R_EADDR_MASK 0x3FFFFFFFFFFFFFFF
#define R_EADDR_VALID_MASK 0xC00FFFFFFFFFFFFF
diff --git a/target/s390x/s390x-internal.h b/target/s390x/s390x-internal.h
index 6fc8cad2d5..b451b702d0 100644
--- a/target/s390x/s390x-internal.h
+++ b/target/s390x/s390x-internal.h
@@ -10,6 +10,8 @@
#ifndef S390X_INTERNAL_H
#define S390X_INTERNAL_H
+#include "exec/cpu-tlb.h"
+
#include "cpu.h"
#ifndef CONFIG_USER_ONLY
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h'
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
` (5 preceding siblings ...)
2022-02-09 23:00 ` [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:19 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 8/9] user: Declare target-agnostic prototypes in 'user/cpu-common.h' Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 9/9] user: Share preexit_cleanup() with linux and bsd implementations Philippe Mathieu-Daudé via
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
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
diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
index 6f5d4933f0..c05bd84f1b 100644
--- a/accel/tcg/user-exec.c
+++ b/accel/tcg/user-exec.c
@@ -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;
diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c
index 142a5bfac2..d64b0de0f4 100644
--- a/bsd-user/elfload.c
+++ b/bsd-user/elfload.c
@@ -20,6 +20,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "disas/disas.h"
#include "qemu/path.h"
diff --git a/bsd-user/main.c b/bsd-user/main.c
index f1d58e905e..93f7851fdd 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -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"
diff --git a/bsd-user/signal.c b/bsd-user/signal.c
index 8a36b696d8..15af69c509 100644
--- a/bsd-user/signal.c
+++ b/bsd-user/signal.c
@@ -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"
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index 537f465f54..e8f14b6844 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.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) {}
diff --git a/include/user/cpu-target.h b/include/user/cpu-target.h
new file mode 100644
index 0000000000..e621fb9f3d
--- /dev/null
+++ b/include/user/cpu-target.h
@@ -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
diff --git a/linux-user/aarch64/cpu_loop.c b/linux-user/aarch64/cpu_loop.c
index 1737e2ea65..ce19e2cf7a 100644
--- a/linux-user/aarch64/cpu_loop.c
+++ b/linux-user/aarch64/cpu_loop.c
@@ -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"
diff --git a/linux-user/alpha/cpu_loop.c b/linux-user/alpha/cpu_loop.c
index de6e0c901c..735603f6f1 100644
--- a/linux-user/alpha/cpu_loop.c
+++ b/linux-user/alpha/cpu_loop.c
@@ -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"
diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c
index 032e1ffddf..268e19cbca 100644
--- a/linux-user/arm/cpu_loop.c
+++ b/linux-user/arm/cpu_loop.c
@@ -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"
diff --git a/linux-user/arm/signal.c b/linux-user/arm/signal.c
index cf99fd7b8a..0cec11ebe4 100644
--- a/linux-user/arm/signal.c
+++ b/linux-user/arm/signal.c
@@ -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"
diff --git a/linux-user/cris/cpu_loop.c b/linux-user/cris/cpu_loop.c
index 0f46b3c1a8..a70b93203c 100644
--- a/linux-user/cris/cpu_loop.c
+++ b/linux-user/cris/cpu_loop.c
@@ -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"
diff --git a/linux-user/elfload.c b/linux-user/elfload.c
index 99829faf89..0f5df23aee 100644
--- a/linux-user/elfload.c
+++ b/linux-user/elfload.c
@@ -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"
diff --git a/linux-user/hexagon/cpu_loop.c b/linux-user/hexagon/cpu_loop.c
index 0d73934d31..c167da2474 100644
--- a/linux-user/hexagon/cpu_loop.c
+++ b/linux-user/hexagon/cpu_loop.c
@@ -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"
diff --git a/linux-user/hppa/cpu_loop.c b/linux-user/hppa/cpu_loop.c
index a576d1a249..ebec350047 100644
--- a/linux-user/hppa/cpu_loop.c
+++ b/linux-user/hppa/cpu_loop.c
@@ -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"
diff --git a/linux-user/hppa/signal.c b/linux-user/hppa/signal.c
index 962f551c04..17dbb96f07 100644
--- a/linux-user/hppa/signal.c
+++ b/linux-user/hppa/signal.c
@@ -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"
diff --git a/linux-user/i386/cpu_loop.c b/linux-user/i386/cpu_loop.c
index 90bffc1956..425b898590 100644
--- a/linux-user/i386/cpu_loop.c
+++ b/linux-user/i386/cpu_loop.c
@@ -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"
diff --git a/linux-user/linuxload.c b/linux-user/linuxload.c
index 2ed5fc45ed..e7312be184 100644
--- a/linux-user/linuxload.c
+++ b/linux-user/linuxload.c
@@ -2,6 +2,7 @@
#include "qemu/osdep.h"
#include "qemu.h"
+#include "user/cpu-target.h"
#include "user-internals.h"
#include "loader.h"
diff --git a/linux-user/m68k/cpu_loop.c b/linux-user/m68k/cpu_loop.c
index 928a18e3cf..2aec60da0d 100644
--- a/linux-user/m68k/cpu_loop.c
+++ b/linux-user/m68k/cpu_loop.c
@@ -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"
diff --git a/linux-user/main.c b/linux-user/main.c
index 16def5215d..e318dcfcf8 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -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"
diff --git a/linux-user/microblaze/cpu_loop.c b/linux-user/microblaze/cpu_loop.c
index 1a2556be2c..3023e5691b 100644
--- a/linux-user/microblaze/cpu_loop.c
+++ b/linux-user/microblaze/cpu_loop.c
@@ -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"
diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c
index 9bb12a07ba..10292a9c40 100644
--- a/linux-user/mips/cpu_loop.c
+++ b/linux-user/mips/cpu_loop.c
@@ -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"
diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index c125031b90..1849bac128 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -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"
diff --git a/linux-user/nios2/cpu_loop.c b/linux-user/nios2/cpu_loop.c
index 1e93ef34e6..f10c28f965 100644
--- a/linux-user/nios2/cpu_loop.c
+++ b/linux-user/nios2/cpu_loop.c
@@ -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"
diff --git a/linux-user/openrisc/cpu_loop.c b/linux-user/openrisc/cpu_loop.c
index 7683bea064..137889d7e0 100644
--- a/linux-user/openrisc/cpu_loop.c
+++ b/linux-user/openrisc/cpu_loop.c
@@ -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"
diff --git a/linux-user/ppc/cpu_loop.c b/linux-user/ppc/cpu_loop.c
index ffe39851ed..252ee8efbf 100644
--- a/linux-user/ppc/cpu_loop.c
+++ b/linux-user/ppc/cpu_loop.c
@@ -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"
diff --git a/linux-user/ppc/signal.c b/linux-user/ppc/signal.c
index 176c9d8503..541d70b410 100644
--- a/linux-user/ppc/signal.c
+++ b/linux-user/ppc/signal.c
@@ -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"
diff --git a/linux-user/riscv/cpu_loop.c b/linux-user/riscv/cpu_loop.c
index 26d446f323..2712f2c675 100644
--- a/linux-user/riscv/cpu_loop.c
+++ b/linux-user/riscv/cpu_loop.c
@@ -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"
diff --git a/linux-user/s390x/cpu_loop.c b/linux-user/s390x/cpu_loop.c
index 7901dfe6f5..37d05f127e 100644
--- a/linux-user/s390x/cpu_loop.c
+++ b/linux-user/s390x/cpu_loop.c
@@ -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"
diff --git a/linux-user/sh4/cpu_loop.c b/linux-user/sh4/cpu_loop.c
index 1bd313cb19..bd52b3be93 100644
--- a/linux-user/sh4/cpu_loop.c
+++ b/linux-user/sh4/cpu_loop.c
@@ -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"
diff --git a/linux-user/signal.c b/linux-user/signal.c
index 32854bb375..c36f7669ad 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -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"
diff --git a/linux-user/sparc/cpu_loop.c b/linux-user/sparc/cpu_loop.c
index baf3d9ae01..506d4b49f0 100644
--- a/linux-user/sparc/cpu_loop.c
+++ b/linux-user/sparc/cpu_loop.c
@@ -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"
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 5950222a77..2cc17c8617 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -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"
diff --git a/linux-user/uaccess.c b/linux-user/uaccess.c
index 425cbf677f..99234c52a0 100644
--- a/linux-user/uaccess.c
+++ b/linux-user/uaccess.c
@@ -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"
diff --git a/linux-user/xtensa/cpu_loop.c b/linux-user/xtensa/cpu_loop.c
index d51ce05392..829659297b 100644
--- a/linux-user/xtensa/cpu_loop.c
+++ b/linux-user/xtensa/cpu_loop.c
@@ -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"
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 8/9] user: Declare target-agnostic prototypes in 'user/cpu-common.h'
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
` (6 preceding siblings ...)
2022-02-09 23:00 ` [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h' Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 9/9] user: Share preexit_cleanup() with linux and bsd implementations Philippe Mathieu-Daudé via
8 siblings, 0 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
Move user-mode common prototypes from "exec/exec-all.h"
to "user/cpu-common.h".
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
bsd-user/qemu.h | 2 --
include/exec/cpu-all.h | 3 +--
include/exec/exec-all.h | 10 ----------
include/user/cpu-common.h | 36 ++++++++++++++++++++++++++++++++++++
include/user/cpu-target.h | 1 +
linux-user/exit.c | 3 +--
linux-user/user-internals.h | 10 ----------
7 files changed, 39 insertions(+), 26 deletions(-)
create mode 100644 include/user/cpu-common.h
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 2f67776b0b..afaf94412e 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -182,8 +182,6 @@ abi_long do_openbsd_syscall(void *cpu_env, int num, abi_long arg1,
abi_long arg2, abi_long arg3, abi_long arg4,
abi_long arg5, abi_long arg6);
void gemu_log(const char *fmt, ...) GCC_FMT_ATTR(1, 2);
-extern __thread CPUState *thread_cpu;
-void cpu_loop(CPUArchState *env);
char *target_strerror(int err);
int get_osversion(void);
void fork_start(void);
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index 08b2894274..e9cf20560f 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -296,9 +296,8 @@ void *page_alloc_target_data(target_ulong address, size_t size);
* at @address, as per page_alloc_target_data.
*/
void *page_get_target_data(target_ulong address);
-#endif
-CPUArchState *cpu_copy(CPUArchState *env);
+#endif /* CONFIG_USER_ONLY */
/* Flags for use in ENV->INTERRUPT_PENDING.
diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
index e8f14b6844..545cc16a67 100644
--- a/include/exec/exec-all.h
+++ b/include/exec/exec-all.h
@@ -639,16 +639,6 @@ static inline tb_page_addr_t get_page_addr_code_hostp(CPUArchState *env,
return addr;
}
-/**
- * adjust_signal_pc:
- * @pc: raw pc from the host signal ucontext_t.
- * @is_write: host memory operation was write, or read-modify-write.
- *
- * Alter @pc as required for unwinding. Return the type of the
- * guest memory access -- host reads may be for guest execution.
- */
-MMUAccessType adjust_signal_pc(uintptr_t *pc, bool is_write);
-
#else
static inline void mmap_lock(void) {}
static inline void mmap_unlock(void) {}
diff --git a/include/user/cpu-common.h b/include/user/cpu-common.h
new file mode 100644
index 0000000000..267acb143a
--- /dev/null
+++ b/include/user/cpu-common.h
@@ -0,0 +1,36 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * cpu-target.h: user-mode target-agnostic execution prototypes
+ *
+ */
+
+#ifndef USER_CPU_COMMON_H
+#define USER_CPU_COMMON_H
+
+#include "exec/cpu-tlb.h"
+
+extern __thread CPUState *thread_cpu;
+
+/**
+ * adjust_signal_pc:
+ * @pc: raw pc from the host signal ucontext_t.
+ * @is_write: host memory operation was write, or read-modify-write.
+ *
+ * Alter @pc as required for unwinding. Return the type of the
+ * guest memory access -- host reads may be for guest execution.
+ */
+MMUAccessType adjust_signal_pc(uintptr_t *pc, bool is_write);
+
+void QEMU_NORETURN cpu_loop(CPUArchState *env);
+
+CPUArchState *cpu_copy(CPUArchState *env);
+
+/**
+ * preexit_cleanup: housekeeping before the guest exits
+ *
+ * env: the CPU state
+ * code: the exit code
+ */
+void preexit_cleanup(CPUArchState *env, int code);
+
+#endif
diff --git a/include/user/cpu-target.h b/include/user/cpu-target.h
index e621fb9f3d..4fbdb35fa4 100644
--- a/include/user/cpu-target.h
+++ b/include/user/cpu-target.h
@@ -9,6 +9,7 @@
#include "exec/cpu-tlb.h"
#include "exec/cpu_ldst.h" /* abi_ptr */
+#include "user/cpu-common.h"
/**
* handle_sigsegv_accerr_write:
diff --git a/linux-user/exit.c b/linux-user/exit.c
index 10989f17f8..2c8a8dd75d 100644
--- a/linux-user/exit.c
+++ b/linux-user/exit.c
@@ -19,8 +19,7 @@
#include "qemu/osdep.h"
#include "qemu/plugin.h"
#include "exec/gdbstub.h"
-#include "qemu.h"
-#include "user-internals.h"
+#include "user/cpu-common.h"
#ifdef CONFIG_GPROF
#include <sys/gmon.h>
#endif
diff --git a/linux-user/user-internals.h b/linux-user/user-internals.h
index 4d0f682aea..d17f3c9300 100644
--- a/linux-user/user-internals.h
+++ b/linux-user/user-internals.h
@@ -63,8 +63,6 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
abi_long arg2, abi_long arg3, abi_long arg4,
abi_long arg5, abi_long arg6, abi_long arg7,
abi_long arg8);
-extern __thread CPUState *thread_cpu;
-void QEMU_NORETURN cpu_loop(CPUArchState *env);
const char *target_strerror(int err);
int get_osversion(void);
void init_qemu_uname_release(void);
@@ -166,14 +164,6 @@ static inline int regpairs_aligned(void *cpu_env, int num) { return 1; }
static inline int regpairs_aligned(void *cpu_env, int num) { return 0; }
#endif
-/**
- * preexit_cleanup: housekeeping before the guest exits
- *
- * env: the CPU state
- * code: the exit code
- */
-void preexit_cleanup(CPUArchState *env, int code);
-
/*
* Include target-specific struct and function definitions;
* they may need access to the target-independent structures
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH 9/9] user: Share preexit_cleanup() with linux and bsd implementations
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
` (7 preceding siblings ...)
2022-02-09 23:00 ` [PATCH 8/9] user: Declare target-agnostic prototypes in 'user/cpu-common.h' Philippe Mathieu-Daudé via
@ 2022-02-09 23:00 ` Philippe Mathieu-Daudé via
2022-02-10 23:23 ` Richard Henderson
8 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-09 23:00 UTC (permalink / raw)
To: qemu-devel
Cc: Riku Voipio, Richard Henderson, Laurent Vivier, Paolo Bonzini,
Philippe Mathieu-Daudé
preexit_cleanup() is not Linux specific, move it to common-user/.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
{linux-user => common-user}/exit.c | 0
common-user/meson.build | 1 +
linux-user/meson.build | 1 -
3 files changed, 1 insertion(+), 1 deletion(-)
rename {linux-user => common-user}/exit.c (100%)
diff --git a/linux-user/exit.c b/common-user/exit.c
similarity index 100%
rename from linux-user/exit.c
rename to common-user/exit.c
diff --git a/common-user/meson.build b/common-user/meson.build
index 26212dda5c..7204f8bd61 100644
--- a/common-user/meson.build
+++ b/common-user/meson.build
@@ -1,6 +1,7 @@
common_user_inc += include_directories('host/' / host_arch)
user_ss.add(files(
+ 'exit.c',
'safe-syscall.S',
'safe-syscall-error.c',
))
diff --git a/linux-user/meson.build b/linux-user/meson.build
index de4320af05..25756a2518 100644
--- a/linux-user/meson.build
+++ b/linux-user/meson.build
@@ -9,7 +9,6 @@ common_user_inc += include_directories('include')
linux_user_ss.add(files(
'elfload.c',
- 'exit.c',
'fd-trans.c',
'linuxload.c',
'main.c',
--
2.34.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] coverity-scan: Cover common-user/
2022-02-09 23:00 ` [PATCH 2/9] coverity-scan: Cover common-user/ Philippe Mathieu-Daudé via
@ 2022-02-10 23:08 ` Richard Henderson
2022-02-11 11:56 ` Peter Maydell
1 sibling, 0 replies; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:08 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> common-user/ has been added in commit bbf15aaf7c
> ("common-user: Move safe-syscall.* from linux-user").
>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
> scripts/coverity-scan/COMPONENTS.md | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 3/9] include: Move exec/user/ to user/
2022-02-09 23:00 ` [PATCH 3/9] include: Move exec/user/ to user/ Philippe Mathieu-Daudé via
@ 2022-02-10 23:12 ` Richard Henderson
0 siblings, 0 replies; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:12 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> Avoid spreading the headers in multiple directories,
> unify exec/user/ and user/.
>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
> bsd-user/qemu.h | 4 ++--
> include/exec/cpu-all.h | 2 +-
> include/{exec => }/user/abitypes.h | 0
> include/user/safe-syscall.h | 6 +++---
> include/{exec => }/user/thunk.h | 2 +-
> linux-user/qemu.h | 2 +-
> linux-user/thunk.c | 2 +-
> linux-user/user-internals.h | 2 +-
> scripts/coverity-scan/COMPONENTS.md | 2 +-
> 9 files changed, 11 insertions(+), 11 deletions(-)
> rename include/{exec => }/user/abitypes.h (100%)
> rename include/{exec => }/user/thunk.h (99%)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Something I noticed in passing: abitypes.h doesn't need all of cpu.h, only cpu-param.h.
r~
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 4/9] linux-user/exit: Add missing 'qemu/plugin.h' header
2022-02-09 23:00 ` [PATCH 4/9] linux-user/exit: Add missing 'qemu/plugin.h' header Philippe Mathieu-Daudé via
@ 2022-02-10 23:13 ` Richard Henderson
0 siblings, 0 replies; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:13 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> qemu_plugin_user_exit() is declared in "qemu/plugin.h".
>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
> linux-user/exit.c | 1 +
> 1 file changed, 1 insertion(+)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 5/9] linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header
2022-02-09 23:00 ` [PATCH 5/9] linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header Philippe Mathieu-Daudé via
@ 2022-02-10 23:13 ` Richard Henderson
0 siblings, 0 replies; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:13 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> env_cpu() is declared in "exec/cpu-all.h".
>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
> linux-user/cpu_loop-common.h | 1 +
> 1 file changed, 1 insertion(+)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header
2022-02-09 23:00 ` [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header Philippe Mathieu-Daudé via
@ 2022-02-10 23:14 ` Richard Henderson
2022-02-11 9:32 ` Philippe Mathieu-Daudé via
0 siblings, 1 reply; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:14 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> To reduce the inclusion of "hw/core/cpu.h", extract
> MMUAccessType to its own "exec/cpu-tlb.h" header.
>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
Not keen on the name, unless you plan to put something else in there.
r~
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h'
2022-02-09 23:00 ` [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h' Philippe Mathieu-Daudé via
@ 2022-02-10 23:19 ` Richard Henderson
2022-02-11 9:30 ` Philippe Mathieu-Daudé via
0 siblings, 1 reply; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:19 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> Move user-mode specific prototypes from "exec/exec-all.h"
> to "user/cpu-target.h".
>
> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
> ---
Why a new cpu-target.h, and what is it supposed to mean? What else is going in there? It
all looks cpu_loop related so far.
Why is this separate from the next patch, with "cpu-common.h", which also appears to be
basically cpu_loop related?
r~
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 9/9] user: Share preexit_cleanup() with linux and bsd implementations
2022-02-09 23:00 ` [PATCH 9/9] user: Share preexit_cleanup() with linux and bsd implementations Philippe Mathieu-Daudé via
@ 2022-02-10 23:23 ` Richard Henderson
0 siblings, 0 replies; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:23 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier, Warner Losh
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> preexit_cleanup() is not Linux specific, move it to common-user/.
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> {linux-user => common-user}/exit.c | 0
> common-user/meson.build | 1 +
> linux-user/meson.build | 1 -
> 3 files changed, 1 insertion(+), 1 deletion(-)
> rename {linux-user => common-user}/exit.c (100%)
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Of course, the next step is to use the function (cc Warner).
r~
>
> diff --git a/linux-user/exit.c b/common-user/exit.c
> similarity index 100%
> rename from linux-user/exit.c
> rename to common-user/exit.c
> diff --git a/common-user/meson.build b/common-user/meson.build
> index 26212dda5c..7204f8bd61 100644
> --- a/common-user/meson.build
> +++ b/common-user/meson.build
> @@ -1,6 +1,7 @@
> common_user_inc += include_directories('host/' / host_arch)
>
> user_ss.add(files(
> + 'exit.c',
> 'safe-syscall.S',
> 'safe-syscall-error.c',
> ))
> diff --git a/linux-user/meson.build b/linux-user/meson.build
> index de4320af05..25756a2518 100644
> --- a/linux-user/meson.build
> +++ b/linux-user/meson.build
> @@ -9,7 +9,6 @@ common_user_inc += include_directories('include')
>
> linux_user_ss.add(files(
> 'elfload.c',
> - 'exit.c',
> 'fd-trans.c',
> 'linuxload.c',
> 'main.c',
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header
2022-02-09 23:00 ` [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header Philippe Mathieu-Daudé via
@ 2022-02-10 23:25 ` Richard Henderson
2022-02-11 9:34 ` Philippe Mathieu-Daudé via
0 siblings, 1 reply; 24+ messages in thread
From: Richard Henderson @ 2022-02-10 23:25 UTC (permalink / raw)
To: Philippe Mathieu-Daudé, qemu-devel
Cc: Paolo Bonzini, Riku Voipio, Laurent Vivier
On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> accel/tcg/tcg-accel-ops-icount.c | 1 +
> accel/tcg/tcg-accel-ops-mttcg.c | 1 +
> accel/tcg/tcg-accel-ops-rr.c | 1 +
> accel/tcg/tcg-accel-ops.c | 1 +
> 4 files changed, 4 insertions(+)
What exactly are these files using from tcg.h?
I briefly scanned tcg-accel-ops-icount.c and didn't see anything.
r~
>
> diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
> index bdaf2c943b..379a9d44f4 100644
> --- a/accel/tcg/tcg-accel-ops-icount.c
> +++ b/accel/tcg/tcg-accel-ops-icount.c
> @@ -31,6 +31,7 @@
> #include "qemu/main-loop.h"
> #include "qemu/guest-random.h"
> #include "exec/exec-all.h"
> +#include "tcg/tcg.h"
>
> #include "tcg-accel-ops.h"
> #include "tcg-accel-ops-icount.h"
> diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttcg.c
> index dc421c8fd7..de7dcb02e6 100644
> --- a/accel/tcg/tcg-accel-ops-mttcg.c
> +++ b/accel/tcg/tcg-accel-ops-mttcg.c
> @@ -33,6 +33,7 @@
> #include "qemu/guest-random.h"
> #include "exec/exec-all.h"
> #include "hw/boards.h"
> +#include "tcg/tcg.h"
>
> #include "tcg-accel-ops.h"
> #include "tcg-accel-ops-mttcg.h"
> diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c
> index a805fb6bdd..889d0882a2 100644
> --- a/accel/tcg/tcg-accel-ops-rr.c
> +++ b/accel/tcg/tcg-accel-ops-rr.c
> @@ -32,6 +32,7 @@
> #include "qemu/notify.h"
> #include "qemu/guest-random.h"
> #include "exec/exec-all.h"
> +#include "tcg/tcg.h"
>
> #include "tcg-accel-ops.h"
> #include "tcg-accel-ops-rr.h"
> diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
> index ea7dcad674..58e4b09043 100644
> --- a/accel/tcg/tcg-accel-ops.c
> +++ b/accel/tcg/tcg-accel-ops.c
> @@ -33,6 +33,7 @@
> #include "qemu/main-loop.h"
> #include "qemu/guest-random.h"
> #include "exec/exec-all.h"
> +#include "tcg/tcg.h"
>
> #include "tcg-accel-ops.h"
> #include "tcg-accel-ops-mttcg.h"
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h'
2022-02-10 23:19 ` Richard Henderson
@ 2022-02-11 9:30 ` Philippe Mathieu-Daudé via
0 siblings, 0 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-11 9:30 UTC (permalink / raw)
To: Richard Henderson, qemu-devel, Thomas Huth
Cc: Riku Voipio, Laurent Vivier, Paolo Bonzini
+Thomas
On 11/2/22 00:19, Richard Henderson wrote:
> On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
>> Move user-mode specific prototypes from "exec/exec-all.h"
>> to "user/cpu-target.h".
>>
>> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
>> ---
>
> Why a new cpu-target.h, and what is it supposed to mean? What else is
> going in there? It all looks cpu_loop related so far.
I'd like to put all declarations using target_ulong in foo-target.h and
the ones which don't in foo-common.h (cpu, user, exec).
That way I can move implementations from target-specific to target
agnostic meson source set, and better isolate the target-specific APIs.
> Why is this separate from the next patch, with "cpu-common.h", which
> also appears to be basically cpu_loop related?
I can squash both. The commit description could be "Move APIs using
target_ulong to cpu-target.h, keep the rest in cpu-common.h".
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header
2022-02-10 23:14 ` Richard Henderson
@ 2022-02-11 9:32 ` Philippe Mathieu-Daudé via
0 siblings, 0 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-11 9:32 UTC (permalink / raw)
To: Richard Henderson, qemu-devel; +Cc: Riku Voipio, Laurent Vivier, Paolo Bonzini
On 11/2/22 00:14, Richard Henderson wrote:
> On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
>> To reduce the inclusion of "hw/core/cpu.h", extract
>> MMUAccessType to its own "exec/cpu-tlb.h" header.
>>
>> Signed-off-by: Philippe Mathieu-Daudé<f4bug@amsat.org>
>> ---
>
> Not keen on the name, unless you plan to put something else in there.
Not yet.
What about "exec/mmu-types.h", kinda similar to "exec/memattrs.h"?
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header
2022-02-10 23:25 ` Richard Henderson
@ 2022-02-11 9:34 ` Philippe Mathieu-Daudé via
0 siblings, 0 replies; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-11 9:34 UTC (permalink / raw)
To: Richard Henderson, qemu-devel; +Cc: Riku Voipio, Laurent Vivier, Paolo Bonzini
On 11/2/22 00:25, Richard Henderson wrote:
> On 2/10/22 10:00, Philippe Mathieu-Daudé wrote:
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> accel/tcg/tcg-accel-ops-icount.c | 1 +
>> accel/tcg/tcg-accel-ops-mttcg.c | 1 +
>> accel/tcg/tcg-accel-ops-rr.c | 1 +
>> accel/tcg/tcg-accel-ops.c | 1 +
>> 4 files changed, 4 insertions(+)
>
> What exactly are these files using from tcg.h?
> I briefly scanned tcg-accel-ops-icount.c and didn't see anything.
extern __thread TCGContext *tcg_ctx;
I'll mention it in the description.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] coverity-scan: Cover common-user/
2022-02-09 23:00 ` [PATCH 2/9] coverity-scan: Cover common-user/ Philippe Mathieu-Daudé via
2022-02-10 23:08 ` Richard Henderson
@ 2022-02-11 11:56 ` Peter Maydell
2022-02-11 12:38 ` Philippe Mathieu-Daudé via
1 sibling, 1 reply; 24+ messages in thread
From: Peter Maydell @ 2022-02-11 11:56 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Riku Voipio, Richard Henderson, qemu-devel,
Laurent Vivier
On Wed, 9 Feb 2022 at 23:12, Philippe Mathieu-Daudé via
<qemu-devel@nongnu.org> wrote:
>
> common-user/ has been added in commit bbf15aaf7c
> ("common-user: Move safe-syscall.* from linux-user").
>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> scripts/coverity-scan/COMPONENTS.md | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/coverity-scan/COMPONENTS.md b/scripts/coverity-scan/COMPONENTS.md
> index 183f26a32c..cea6695ecd 100644
> --- a/scripts/coverity-scan/COMPONENTS.md
> +++ b/scripts/coverity-scan/COMPONENTS.md
> @@ -127,7 +127,7 @@ usb
> ~ (/qemu)?(/hw/usb/.*|/include/hw/usb/.*)
>
> user
> - ~ (/qemu)?(/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
> + ~ (/qemu)?(/common-user/.*|/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
>
> util
> ~ (/qemu)?(/util/.*|/include/qemu/.*)
Note that there is no automatic process by which changes to this
file get applied to the coverity scan config, so hiding changes
to it inside a larger patchset increases the chance they get
overlooked (by Paolo, who gets to do the manual config update)...
-- PMM
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] coverity-scan: Cover common-user/
2022-02-11 11:56 ` Peter Maydell
@ 2022-02-11 12:38 ` Philippe Mathieu-Daudé via
2022-02-11 12:54 ` Peter Maydell
0 siblings, 1 reply; 24+ messages in thread
From: Philippe Mathieu-Daudé via @ 2022-02-11 12:38 UTC (permalink / raw)
To: Peter Maydell
Cc: qemu-devel, Riku Voipio, Richard Henderson, Laurent Vivier,
Paolo Bonzini
On 11/2/22 12:56, Peter Maydell wrote:
> On Wed, 9 Feb 2022 at 23:12, Philippe Mathieu-Daudé via
> <qemu-devel@nongnu.org> wrote:
>>
>> common-user/ has been added in commit bbf15aaf7c
>> ("common-user: Move safe-syscall.* from linux-user").
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>> ---
>> scripts/coverity-scan/COMPONENTS.md | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/coverity-scan/COMPONENTS.md b/scripts/coverity-scan/COMPONENTS.md
>> index 183f26a32c..cea6695ecd 100644
>> --- a/scripts/coverity-scan/COMPONENTS.md
>> +++ b/scripts/coverity-scan/COMPONENTS.md
>> @@ -127,7 +127,7 @@ usb
>> ~ (/qemu)?(/hw/usb/.*|/include/hw/usb/.*)
>>
>> user
>> - ~ (/qemu)?(/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
>> + ~ (/qemu)?(/common-user/.*|/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
>>
>> util
>> ~ (/qemu)?(/util/.*|/include/qemu/.*)
>
> Note that there is no automatic process by which changes to this
> file get applied to the coverity scan config, so hiding changes
> to it inside a larger patchset increases the chance they get
> overlooked (by Paolo, who gets to do the manual config update)...
Oh OK, I thought this was consumed by a script.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 2/9] coverity-scan: Cover common-user/
2022-02-11 12:38 ` Philippe Mathieu-Daudé via
@ 2022-02-11 12:54 ` Peter Maydell
0 siblings, 0 replies; 24+ messages in thread
From: Peter Maydell @ 2022-02-11 12:54 UTC (permalink / raw)
To: Philippe Mathieu-Daudé
Cc: Paolo Bonzini, Riku Voipio, Richard Henderson, qemu-devel,
Laurent Vivier
On Fri, 11 Feb 2022 at 12:38, Philippe Mathieu-Daudé <f4bug@amsat.org> wrote:
>
> On 11/2/22 12:56, Peter Maydell wrote:
> > On Wed, 9 Feb 2022 at 23:12, Philippe Mathieu-Daudé via
> > <qemu-devel@nongnu.org> wrote:
> >>
> >> common-user/ has been added in commit bbf15aaf7c
> >> ("common-user: Move safe-syscall.* from linux-user").
> >>
> >> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> >> ---
> >> scripts/coverity-scan/COMPONENTS.md | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/scripts/coverity-scan/COMPONENTS.md b/scripts/coverity-scan/COMPONENTS.md
> >> index 183f26a32c..cea6695ecd 100644
> >> --- a/scripts/coverity-scan/COMPONENTS.md
> >> +++ b/scripts/coverity-scan/COMPONENTS.md
> >> @@ -127,7 +127,7 @@ usb
> >> ~ (/qemu)?(/hw/usb/.*|/include/hw/usb/.*)
> >>
> >> user
> >> - ~ (/qemu)?(/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
> >> + ~ (/qemu)?(/common-user/.*|/linux-user/.*|/bsd-user/.*|/user-exec\.c|/thunk\.c|/include/exec/user/.*)
> >>
> >> util
> >> ~ (/qemu)?(/util/.*|/include/qemu/.*)
> >
> > Note that there is no automatic process by which changes to this
> > file get applied to the coverity scan config, so hiding changes
> > to it inside a larger patchset increases the chance they get
> > overlooked (by Paolo, who gets to do the manual config update)...
>
> Oh OK, I thought this was consumed by a script.
Unfortunately Coverity don't provide an API for configuring
components, so it all has to be done via their webpage GUI :-(
-- PMM
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2022-02-11 13:34 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-09 23:00 [PATCH 0/9] exec: Split some user-mode specific declarations from 'exec/exec-all.h' Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 1/9] accel/tcg: Add missing 'tcg/tcg.h' header Philippe Mathieu-Daudé via
2022-02-10 23:25 ` Richard Henderson
2022-02-11 9:34 ` Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 2/9] coverity-scan: Cover common-user/ Philippe Mathieu-Daudé via
2022-02-10 23:08 ` Richard Henderson
2022-02-11 11:56 ` Peter Maydell
2022-02-11 12:38 ` Philippe Mathieu-Daudé via
2022-02-11 12:54 ` Peter Maydell
2022-02-09 23:00 ` [PATCH 3/9] include: Move exec/user/ to user/ Philippe Mathieu-Daudé via
2022-02-10 23:12 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 4/9] linux-user/exit: Add missing 'qemu/plugin.h' header Philippe Mathieu-Daudé via
2022-02-10 23:13 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 5/9] linux-user/cpu_loop: Add missing 'exec/cpu-all.h' header Philippe Mathieu-Daudé via
2022-02-10 23:13 ` Richard Henderson
2022-02-09 23:00 ` [PATCH 6/9] exec: Define MMUAccessType in 'exec/cpu-tlb.h' header Philippe Mathieu-Daudé via
2022-02-10 23:14 ` Richard Henderson
2022-02-11 9:32 ` Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 7/9] user: Declare target-specific prototypes in 'user/cpu-target.h' Philippe Mathieu-Daudé via
2022-02-10 23:19 ` Richard Henderson
2022-02-11 9:30 ` Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 8/9] user: Declare target-agnostic prototypes in 'user/cpu-common.h' Philippe Mathieu-Daudé via
2022-02-09 23:00 ` [PATCH 9/9] user: Share preexit_cleanup() with linux and bsd implementations Philippe Mathieu-Daudé via
2022-02-10 23:23 ` Richard Henderson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.