[PATCH 00/24] exec: Build up 'cputlb.h' and 'ram_addr.h' headers

Philippe Mathieu-Daudé posted 24 patches 1 week, 2 days ago
MAINTAINERS                                   |   3 +-
include/exec/cpu-all.h                        |  59 +---
include/exec/cpu-common.h                     |  56 +---
include/exec/cpu-defs.h                       |   8 -
include/exec/cpu_ldst.h                       |  73 +----
include/exec/cputlb.h                         | 310 +++++++++++++++++-
include/exec/exec-all.h                       | 259 ---------------
include/exec/memory.h                         |   2 +-
include/exec/translation-block.h              |   3 +-
.../ram_addr.h => sysemu/physmem-target.h}    |  56 +---
include/sysemu/ram_addr.h                     | 129 ++++++++
include/user/guest-host.h                     |  87 +++++
linux-user/aarch64/mte_user_helper.h          |   2 +
target/arm/cpu.h                              |   5 +-
accel/kvm/kvm-all.c                           |   3 +-
accel/tcg/cpu-exec.c                          |   1 +
accel/tcg/cputlb.c                            |  28 +-
accel/tcg/tcg-accel-ops.c                     |   2 +
accel/tcg/translate-all.c                     |   3 +-
cpu-target.c                                  |   1 +
hw/intc/armv7m_nvic.c                         |   2 +-
hw/ppc/spapr.c                                |   3 +-
hw/ppc/spapr_caps.c                           |   3 +-
hw/ppc/spapr_nested.c                         |   1 +
hw/ppc/spapr_pci.c                            |   3 +-
hw/remote/memory.c                            |   3 +-
hw/remote/proxy-memory-listener.c             |   3 +-
hw/s390x/s390-stattrib-kvm.c                  |   3 +-
hw/s390x/s390-stattrib.c                      |   3 +-
hw/s390x/s390-virtio-ccw.c                    |   3 +-
hw/sh4/sh7750.c                               |   1 +
hw/vfio/common.c                              |   3 +-
hw/vfio/container.c                           |   3 +-
hw/vfio/iommufd.c                             |   3 +-
hw/vfio/migration.c                           |   3 +-
hw/vfio/spapr.c                               |   3 +-
hw/virtio/virtio-mem.c                        |   3 +-
migration/ram.c                               |   3 +-
plugins/api.c                                 |   3 +-
system/memory.c                               |   3 +-
system/physmem.c                              |   4 +-
system/watchpoint.c                           |   3 +-
target/alpha/helper.c                         |   2 +-
target/alpha/sys_helper.c                     |   2 +-
target/arm/helper.c                           |   1 +
target/arm/tcg/helper-a64.c                   |   1 +
target/arm/tcg/mte_helper.c                   |   5 +-
target/avr/helper.c                           |   2 +-
target/hppa/mem_helper.c                      |   1 +
target/i386/helper.c                          |   2 +
target/i386/machine.c                         |   2 +-
target/i386/tcg/fpu_helper.c                  |   2 +-
target/i386/tcg/misc_helper.c                 |   2 +-
target/i386/tcg/sysemu/excp_helper.c          |   2 +-
target/i386/tcg/sysemu/misc_helper.c          |   2 +-
target/i386/tcg/sysemu/svm_helper.c           |   2 +-
target/loongarch/tcg/csr_helper.c             |   2 +-
target/loongarch/tcg/tlb_helper.c             |   2 +-
target/m68k/helper.c                          |   2 +-
target/microblaze/helper.c                    |   2 +-
target/microblaze/mmu.c                       |   2 +-
target/mips/sysemu/cp0.c                      |   2 +-
target/mips/tcg/sysemu/cp0_helper.c           |   2 +-
target/mips/tcg/sysemu/tlb_helper.c           |   2 +-
target/openrisc/mmu.c                         |   2 +-
target/openrisc/sys_helper.c                  |   1 +
target/ppc/helper_regs.c                      |   2 +-
target/ppc/kvm.c                              |   3 +-
target/ppc/mem_helper.c                       |   1 +
target/ppc/misc_helper.c                      |   1 +
target/ppc/mmu_helper.c                       |   1 +
target/riscv/cpu_helper.c                     |   2 +-
target/riscv/csr.c                            |   1 +
target/riscv/op_helper.c                      |   1 +
target/riscv/pmp.c                            |   2 +-
target/rx/cpu.c                               |   3 +-
target/s390x/gdbstub.c                        |   2 +-
target/s390x/kvm/kvm.c                        |   3 +-
target/s390x/sigp.c                           |   2 +-
target/s390x/tcg/excp_helper.c                |   1 +
target/s390x/tcg/mem_helper.c                 |   1 +
target/s390x/tcg/misc_helper.c                |   1 +
target/sh4/helper.c                           |   2 +-
target/sparc/ldst_helper.c                    |   1 +
target/sparc/mmu_helper.c                     |   2 +-
target/tricore/helper.c                       |   2 +-
target/xtensa/helper.c                        |   2 +-
target/xtensa/mmu_helper.c                    |   1 +
88 files changed, 670 insertions(+), 566 deletions(-)
rename include/{exec/ram_addr.h => sysemu/physmem-target.h} (88%)
create mode 100644 include/sysemu/ram_addr.h
create mode 100644 include/user/guest-host.h
[PATCH 00/24] exec: Build up 'cputlb.h' and 'ram_addr.h' headers
Posted by Philippe Mathieu-Daudé 1 week, 2 days ago
Hi,

"exec/exec-all.h" and "exec/cpu-all.h" both contains a mess
of unrelated APIs. More importantly, they contain target
specific declarations, making any file including them to
become target specific, thus not buildable in common meson
sets.

This series first extract the CPU TLB API scattered in various
headers, then similarly strengthen the ram_addr_t API. Doing
so we figured extracting "user/guest-host.h" was necessary.

Before we have to include various missing headers to avoid
compilation breakage when refactoring.

The relevant part of the diff-stat is:

 include/exec/cpu-all.h        |  59 +-------------------
 include/exec/cpu-common.h     |  56 +------------------
 include/exec/cpu_ldst.h       |  73 +------------------------
 include/exec/exec-all.h       | 259 ------------------------------------------
 include/exec/ram_addr.h       | 56 ++-----------------
 include/sysemu/ram_addr.h     | 129 ++++++++++++++++++++++++++++++++++++++
 include/exec/cputlb.h         | 310 ++++++++++++++++++++++++++++++++++++++++++
 include/user/guest-host.h     |  87 +++++++++++++++++++++++++++++

Hoping it makes sense!

Please review,

Phil.

Philippe Mathieu-Daudé (24):
  exec/cpu-all: Include missing 'exec/cpu-defs.h' header
  exec/cpu-defs: Remove unnecessary headers
  exec/translation-block: Include missing 'exec/vaddr.h' header
  accel/tcg: Include missing 'exec/translation-block.h' header
  target/i386/helper: Include missing 'exec/translation-block.h' header
  target/rx/cpu: Include missing 'exec/translation-block.h' header
  system/watchpoint: Include missing 'exec/cpu-all.h' header
  linux-user/aarch64/mte: Include missing 'user/abitypes.h' header
  target/arm/mte: Restrict 'exec/ram_addr.h' to system emulation
  target/arm/cpu: Restrict cpu_untagged_addr() to user emulation
  exec: Introduce 'user/guest-host.h' header
  accel/tcg: Have tlb_vaddr_to_host() use vaddr type
  exec: Declare tlb_reset_dirty*() in 'exec/cputlb.h'
  exec: Declare tlb_init/destroy() in 'exec/cputlb.h'
  exec: Declare tlb_set_page_full() in 'exec/cputlb.h'
  exec: Declare tlb_set_page_with_attrs() in 'exec/cputlb.h'
  exec: Declare tlb_set_page() in 'exec/cputlb.h'
  exec: Declare tlb_flush*() in 'exec/cputlb.h'
  exec: Declare tlb_hit*() in 'exec/cputlb.h'
  exec: Declare tlb_vaddr_to_host() in 'exec/cputlb.h'
  exec: Extract CPU physical memory API to 'sysemu/physmem-target.h'
  exec/cpu-common: Move ram_addr_t related methods to 'exec/ram_addr.h'
  exec/memory: Move qemu_map_ram_ptr() declaration to 'exec/ram_addr.h'
  exec: Move 'ram_addr.h' header under sysemu/ namespace

 MAINTAINERS                                   |   3 +-
 include/exec/cpu-all.h                        |  59 +---
 include/exec/cpu-common.h                     |  56 +---
 include/exec/cpu-defs.h                       |   8 -
 include/exec/cpu_ldst.h                       |  73 +----
 include/exec/cputlb.h                         | 310 +++++++++++++++++-
 include/exec/exec-all.h                       | 259 ---------------
 include/exec/memory.h                         |   2 +-
 include/exec/translation-block.h              |   3 +-
 .../ram_addr.h => sysemu/physmem-target.h}    |  56 +---
 include/sysemu/ram_addr.h                     | 129 ++++++++
 include/user/guest-host.h                     |  87 +++++
 linux-user/aarch64/mte_user_helper.h          |   2 +
 target/arm/cpu.h                              |   5 +-
 accel/kvm/kvm-all.c                           |   3 +-
 accel/tcg/cpu-exec.c                          |   1 +
 accel/tcg/cputlb.c                            |  28 +-
 accel/tcg/tcg-accel-ops.c                     |   2 +
 accel/tcg/translate-all.c                     |   3 +-
 cpu-target.c                                  |   1 +
 hw/intc/armv7m_nvic.c                         |   2 +-
 hw/ppc/spapr.c                                |   3 +-
 hw/ppc/spapr_caps.c                           |   3 +-
 hw/ppc/spapr_nested.c                         |   1 +
 hw/ppc/spapr_pci.c                            |   3 +-
 hw/remote/memory.c                            |   3 +-
 hw/remote/proxy-memory-listener.c             |   3 +-
 hw/s390x/s390-stattrib-kvm.c                  |   3 +-
 hw/s390x/s390-stattrib.c                      |   3 +-
 hw/s390x/s390-virtio-ccw.c                    |   3 +-
 hw/sh4/sh7750.c                               |   1 +
 hw/vfio/common.c                              |   3 +-
 hw/vfio/container.c                           |   3 +-
 hw/vfio/iommufd.c                             |   3 +-
 hw/vfio/migration.c                           |   3 +-
 hw/vfio/spapr.c                               |   3 +-
 hw/virtio/virtio-mem.c                        |   3 +-
 migration/ram.c                               |   3 +-
 plugins/api.c                                 |   3 +-
 system/memory.c                               |   3 +-
 system/physmem.c                              |   4 +-
 system/watchpoint.c                           |   3 +-
 target/alpha/helper.c                         |   2 +-
 target/alpha/sys_helper.c                     |   2 +-
 target/arm/helper.c                           |   1 +
 target/arm/tcg/helper-a64.c                   |   1 +
 target/arm/tcg/mte_helper.c                   |   5 +-
 target/avr/helper.c                           |   2 +-
 target/hppa/mem_helper.c                      |   1 +
 target/i386/helper.c                          |   2 +
 target/i386/machine.c                         |   2 +-
 target/i386/tcg/fpu_helper.c                  |   2 +-
 target/i386/tcg/misc_helper.c                 |   2 +-
 target/i386/tcg/sysemu/excp_helper.c          |   2 +-
 target/i386/tcg/sysemu/misc_helper.c          |   2 +-
 target/i386/tcg/sysemu/svm_helper.c           |   2 +-
 target/loongarch/tcg/csr_helper.c             |   2 +-
 target/loongarch/tcg/tlb_helper.c             |   2 +-
 target/m68k/helper.c                          |   2 +-
 target/microblaze/helper.c                    |   2 +-
 target/microblaze/mmu.c                       |   2 +-
 target/mips/sysemu/cp0.c                      |   2 +-
 target/mips/tcg/sysemu/cp0_helper.c           |   2 +-
 target/mips/tcg/sysemu/tlb_helper.c           |   2 +-
 target/openrisc/mmu.c                         |   2 +-
 target/openrisc/sys_helper.c                  |   1 +
 target/ppc/helper_regs.c                      |   2 +-
 target/ppc/kvm.c                              |   3 +-
 target/ppc/mem_helper.c                       |   1 +
 target/ppc/misc_helper.c                      |   1 +
 target/ppc/mmu_helper.c                       |   1 +
 target/riscv/cpu_helper.c                     |   2 +-
 target/riscv/csr.c                            |   1 +
 target/riscv/op_helper.c                      |   1 +
 target/riscv/pmp.c                            |   2 +-
 target/rx/cpu.c                               |   3 +-
 target/s390x/gdbstub.c                        |   2 +-
 target/s390x/kvm/kvm.c                        |   3 +-
 target/s390x/sigp.c                           |   2 +-
 target/s390x/tcg/excp_helper.c                |   1 +
 target/s390x/tcg/mem_helper.c                 |   1 +
 target/s390x/tcg/misc_helper.c                |   1 +
 target/sh4/helper.c                           |   2 +-
 target/sparc/ldst_helper.c                    |   1 +
 target/sparc/mmu_helper.c                     |   2 +-
 target/tricore/helper.c                       |   2 +-
 target/xtensa/helper.c                        |   2 +-
 target/xtensa/mmu_helper.c                    |   1 +
 88 files changed, 670 insertions(+), 566 deletions(-)
 rename include/{exec/ram_addr.h => sysemu/physmem-target.h} (88%)
 create mode 100644 include/sysemu/ram_addr.h
 create mode 100644 include/user/guest-host.h

-- 
2.45.2