All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.