mbox series

[00/18] accel/tcg: Extract user APIs out of 'exec/[cpu, exec]-all.h'

Message ID 20241212185341.2857-1-philmd@linaro.org
Headers show
Series accel/tcg: Extract user APIs out of 'exec/[cpu, exec]-all.h' | expand

Message

Philippe Mathieu-Daudé Dec. 12, 2024, 6:53 p.m. UTC
The goal of this series is to clarify user emulation APIs,
and clean the mixed bag of exec/foo-all.h headers.

Move user specific declarations out of the generic
- "exec/cpu-all.h",
- "exec/cpu_ldst.h",
- "exec/exec-all.h" and
- "exec/translate-all.h"
to the generic:
- "accel/tcg/tb-internal.h" and
- "exec/page-protection.h"
and the user specific:
- "user/cpu_loop.h",
- "user/guest-host.h" and
- "user/page-protection.h"

Philippe Mathieu-Daudé (18):
  exec: Introduce 'user/guest-host.h' header
  linux-user/aarch64: Include missing 'user/abitypes.h' header
  include: Include missing 'qemu/clang-tsa.h' header
  accel/tcg: Declare mmap_[un]lock() in 'exec/page-protection.h'
  accel/tcg: Use tb_page_addr_t type in page_unprotect()
  accel/tcg: Move page_[un]protect() to 'user/page-protection.h'
  system: Remove unnecessary 'exec/translate-all.h' include
  accel/tcg: Move 'exec/translate-all.h' -> 'tb-internal.h'
  accel/tcg: Un-inline log_pc()
  accel/tcg: Move TranslationBlock declarations to 'tb-internal.h'
  accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
    (1/4)
  accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
    (2/4)
  accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
    (3/4)
  accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
    (4/4)
  user: Forward declare target_cpu_copy_regs structure
  user: Move 'linux-user/cpu_loop-common.h' -> 'user/cpu_loop.h'
  user: Declare cpu_loop() once in 'user/cpu_loop.h'
  user: Move various declarations out of 'exec/exec-all.h'

 accel/tcg/internal-target.h          |  43 +---------
 accel/tcg/tb-internal.h              |  53 +++++++++++++
 bsd-user/bsd-mem.h                   |   1 +
 bsd-user/qemu.h                      |   3 +-
 include/block/block_int-common.h     |   1 +
 include/exec/cpu-all.h               | 112 +--------------------------
 include/exec/cpu_ldst.h              |  47 +----------
 include/exec/exec-all.h              |  72 +----------------
 include/exec/page-protection.h       |  24 ++++++
 include/exec/translate-all.h         |  33 --------
 include/user/cpu_loop.h              |  90 +++++++++++++++++++++
 include/user/guest-host.h            |  87 +++++++++++++++++++++
 include/user/page-protection.h       |  99 +++++++++++++++++++++++
 linux-user/aarch64/mte_user_helper.h |   2 +
 linux-user/cpu_loop-common.h         |  31 --------
 linux-user/qemu.h                    |   1 +
 linux-user/user-internals.h          |   1 -
 accel/tcg/cpu-exec.c                 |  13 ++++
 accel/tcg/cputlb.c                   |   3 +-
 accel/tcg/tb-maint.c                 |   6 +-
 accel/tcg/translate-all.c            |   4 +-
 accel/tcg/translator.c               |   1 +
 accel/tcg/user-exec.c                |   6 +-
 accel/tcg/watchpoint.c               |   3 +-
 block/create.c                       |   1 +
 bsd-user/main.c                      |   1 +
 bsd-user/mmap.c                      |   1 +
 bsd-user/signal.c                    |   2 +
 cpu-target.c                         |   2 +-
 linux-user/aarch64/cpu_loop.c        |   4 +-
 linux-user/alpha/cpu_loop.c          |   4 +-
 linux-user/arm/cpu_loop.c            |   5 +-
 linux-user/elfload.c                 |   2 +-
 linux-user/flatload.c                |   1 +
 linux-user/hexagon/cpu_loop.c        |   4 +-
 linux-user/hppa/cpu_loop.c           |   4 +-
 linux-user/i386/cpu_loop.c           |   4 +-
 linux-user/loongarch64/cpu_loop.c    |   4 +-
 linux-user/m68k/cpu_loop.c           |   4 +-
 linux-user/main.c                    |   3 +-
 linux-user/microblaze/cpu_loop.c     |   4 +-
 linux-user/mips/cpu_loop.c           |   4 +-
 linux-user/mmap.c                    |   1 +
 linux-user/openrisc/cpu_loop.c       |   4 +-
 linux-user/ppc/cpu_loop.c            |   4 +-
 linux-user/riscv/cpu_loop.c          |   4 +-
 linux-user/s390x/cpu_loop.c          |   4 +-
 linux-user/sh4/cpu_loop.c            |   4 +-
 linux-user/signal.c                  |   2 +
 linux-user/sparc/cpu_loop.c          |   4 +-
 linux-user/syscall.c                 |   3 +-
 linux-user/xtensa/cpu_loop.c         |   4 +-
 system/physmem.c                     |   1 -
 target/arm/helper.c                  |   1 +
 target/arm/tcg/helper-a64.c          |   3 +
 target/arm/tcg/mte_helper.c          |   4 +
 target/arm/tcg/sve_helper.c          |   3 +
 target/hppa/op_helper.c              |   3 +
 target/s390x/tcg/mem_helper.c        |   4 +-
 target/sparc/ldst_helper.c           |   3 +
 tests/unit/test-bdrv-drain.c         |   1 +
 tests/unit/test-block-iothread.c     |   1 +
 util/qemu-thread-posix.c             |   1 +
 63 files changed, 467 insertions(+), 382 deletions(-)
 create mode 100644 accel/tcg/tb-internal.h
 delete mode 100644 include/exec/translate-all.h
 create mode 100644 include/user/cpu_loop.h
 create mode 100644 include/user/guest-host.h
 create mode 100644 include/user/page-protection.h
 delete mode 100644 linux-user/cpu_loop-common.h

Comments

Richard Henderson Dec. 12, 2024, 8:02 p.m. UTC | #1
On 12/12/24 12:53, Philippe Mathieu-Daudé wrote:
> The goal of this series is to clarify user emulation APIs,
> and clean the mixed bag of exec/foo-all.h headers.
> 
> Move user specific declarations out of the generic
> - "exec/cpu-all.h",
> - "exec/cpu_ldst.h",
> - "exec/exec-all.h" and
> - "exec/translate-all.h"
> to the generic:
> - "accel/tcg/tb-internal.h" and
> - "exec/page-protection.h"
> and the user specific:
> - "user/cpu_loop.h",
> - "user/guest-host.h" and
> - "user/page-protection.h"
> 
> Philippe Mathieu-Daudé (18):
>    exec: Introduce 'user/guest-host.h' header
>    linux-user/aarch64: Include missing 'user/abitypes.h' header
>    include: Include missing 'qemu/clang-tsa.h' header
>    accel/tcg: Declare mmap_[un]lock() in 'exec/page-protection.h'
>    accel/tcg: Use tb_page_addr_t type in page_unprotect()
>    accel/tcg: Move page_[un]protect() to 'user/page-protection.h'
>    system: Remove unnecessary 'exec/translate-all.h' include
>    accel/tcg: Move 'exec/translate-all.h' -> 'tb-internal.h'
>    accel/tcg: Un-inline log_pc()
>    accel/tcg: Move TranslationBlock declarations to 'tb-internal.h'
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (1/4)
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (2/4)
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (3/4)
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (4/4)
>    user: Forward declare target_cpu_copy_regs structure
>    user: Move 'linux-user/cpu_loop-common.h' -> 'user/cpu_loop.h'
>    user: Declare cpu_loop() once in 'user/cpu_loop.h'
>    user: Move various declarations out of 'exec/exec-all.h'

Series:
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
Philippe Mathieu-Daudé Dec. 13, 2024, 11:14 a.m. UTC | #2
On 12/12/24 19:53, Philippe Mathieu-Daudé wrote:

> Philippe Mathieu-Daudé (18):
>    exec: Introduce 'user/guest-host.h' header
>    linux-user/aarch64: Include missing 'user/abitypes.h' header
>    include: Include missing 'qemu/clang-tsa.h' header
>    accel/tcg: Declare mmap_[un]lock() in 'exec/page-protection.h'
>    accel/tcg: Use tb_page_addr_t type in page_unprotect()
>    accel/tcg: Move page_[un]protect() to 'user/page-protection.h'
>    system: Remove unnecessary 'exec/translate-all.h' include
>    accel/tcg: Move 'exec/translate-all.h' -> 'tb-internal.h'
>    accel/tcg: Un-inline log_pc()
>    accel/tcg: Move TranslationBlock declarations to 'tb-internal.h'
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (1/4)
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (2/4)
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (3/4)
>    accel/tcg: Move user-related declarations out of 'exec/cpu-all.h'
>      (4/4)
>    user: Forward declare target_cpu_copy_regs structure
>    user: Move 'linux-user/cpu_loop-common.h' -> 'user/cpu_loop.h'
>    user: Declare cpu_loop() once in 'user/cpu_loop.h'
>    user: Move various declarations out of 'exec/exec-all.h'

Series queued, thanks.