Hi Community, Q1) Is it helpful for the document docs/api_hierarchy.txt I wrote? Would you please help review/correct it?
Q2) Does it make sense to remove NEED_CPU_H from qemu-common.h? Q3) In include/sysemu/kvm.h, CONFIG_KVM is used thus considering dependency we should include "config-target.h", what is the best conditional to use? Or we don't use any conditional and assume architecture-independent code should NOT include include/sysemu/kvm.h? Q4) Is it better for include/qemu-common.h to only include C99 API and QEMU basic API declared in include/qemu/*? Q5) Should we move exec/def-helper.h => tcg/def-helper.h and exec/spinlock.h => include/qemu/spinlock.h, to reflect the definition of exec is: memory API, translation API and cpu API? After this patchset, cpu-all.h and exec-all.h should ONLY be included from target-xxx/*. Thanks. Xuebing Wang (10): docs: add docs/api-hierarchy.txt NEED_CPU_H: remove '#include "cpu.h"' from include/qemu-common.h NEED_CPU_H: remove unnecessary use of NEED_CPU_H memory_mapping: make this architecture-independent NEED_CPU_H: remove unnecessary inclusion of "cpu.h" in root memory: move contents in include/exec/address-spaces.h => memory.h memory: remove file include/exec/address-spaces.h exec: move TranslationBlock API from exec-all.h => translate.h exec: remove the unnecessary include of "exec-all.h" translate: remove file translate-all.h arch_init.c | 2 - cpu-exec.c | 7 +- cputlb.c | 8 +- disas.c | 7 +- docs/api-hierarchy.txt | 93 +++++++++ dump.c | 2 - exec.c | 5 - gdbstub.c | 8 +- hw/acpi/ich9.c | 1 - hw/acpi/pcihp.c | 1 - hw/acpi/piix4.c | 1 - hw/alpha/typhoon.c | 1 - hw/arm/boot.c | 1 - hw/arm/collie.c | 1 - hw/arm/digic_boards.c | 1 - hw/arm/exynos4_boards.c | 1 - hw/arm/gumstix.c | 1 - hw/arm/highbank.c | 1 - hw/arm/integratorcp.c | 1 - hw/arm/kzm.c | 1 - hw/arm/mainstone.c | 1 - hw/arm/musicpal.c | 1 - hw/arm/nseries.c | 1 - hw/arm/omap_sx1.c | 1 - hw/arm/palm.c | 1 - hw/arm/realview.c | 1 - hw/arm/spitz.c | 1 - hw/arm/stellaris.c | 1 - hw/arm/tosa.c | 1 - hw/arm/versatilepb.c | 1 - hw/arm/vexpress.c | 1 - hw/arm/virt.c | 1 - hw/arm/xilinx_zynq.c | 1 - hw/arm/z2.c | 1 - hw/block/onenand.c | 1 - hw/block/pflash_cfi01.c | 1 - hw/block/pflash_cfi02.c | 1 - hw/char/mcf_uart.c | 1 - hw/char/omap_uart.c | 1 - hw/char/serial.c | 1 - hw/char/sh_serial.c | 1 - hw/core/loader.c | 1 - hw/core/sysbus.c | 1 - hw/cris/axis_dev88.c | 1 - hw/display/sm501.c | 1 - hw/dma/etraxfs_dma.c | 1 - hw/dma/pl080.c | 1 - hw/dma/soc_dma.c | 5 + hw/dma/sun4m_iommu.c | 1 - hw/i386/pc.c | 1 - hw/i386/pc_piix.c | 1 - hw/i386/pc_q35.c | 1 - hw/intc/armv7m_nvic.c | 1 - hw/intc/openpic_kvm.c | 1 - hw/isa/isa-bus.c | 1 - hw/isa/lpc_ich9.c | 1 - hw/isa/vt82c686.c | 1 - hw/lm32/lm32_boards.c | 1 - hw/lm32/milkymist.c | 1 - hw/m68k/an5206.c | 1 - hw/m68k/dummy_m68k.c | 1 - hw/m68k/mcf5206.c | 1 - hw/m68k/mcf5208.c | 1 - hw/m68k/mcf_intc.c | 1 - hw/microblaze/petalogix_ml605_mmu.c | 1 - hw/microblaze/petalogix_s3adsp1800_mmu.c | 1 - hw/mips/gt64xxx_pci.c | 1 - hw/mips/mips_fulong2e.c | 1 - hw/mips/mips_jazz.c | 1 - hw/mips/mips_malta.c | 1 - hw/mips/mips_mipssim.c | 1 - hw/mips/mips_r4k.c | 1 - hw/misc/arm_integrator_debug.c | 1 - hw/misc/omap_gpmc.c | 1 - hw/misc/vfio.c | 1 - hw/moxie/moxiesim.c | 1 - hw/net/mcf_fec.c | 1 - hw/net/ne2000-isa.c | 1 - hw/openrisc/openrisc_sim.c | 1 - hw/pci-host/apb.c | 1 - hw/pci-host/bonito.c | 1 - hw/pci-host/ppce500.c | 1 - hw/pci-host/prep.c | 1 - hw/pci-host/versatile.c | 1 - hw/pci/pci.c | 1 - hw/pci/pcie_host.c | 1 - hw/ppc/e500.c | 1 - hw/ppc/mac_newworld.c | 1 - hw/ppc/mac_oldworld.c | 1 - hw/ppc/ppc405_boards.c | 1 - hw/ppc/ppc405_uc.c | 1 - hw/ppc/ppc440_bamboo.c | 1 - hw/ppc/ppc4xx_devs.c | 1 - hw/ppc/ppc4xx_pci.c | 1 - hw/ppc/prep.c | 1 - hw/ppc/spapr.c | 1 - hw/ppc/spapr_iommu.c | 1 - hw/ppc/spapr_pci.c | 1 - hw/ppc/virtex_ml507.c | 1 - hw/s390x/css.c | 1 - hw/s390x/s390-virtio-ccw.c | 1 - hw/s390x/s390-virtio.c | 1 - hw/sh4/r2d.c | 1 - hw/sh4/sh7750.c | 1 - hw/sh4/sh_pci.c | 1 - hw/sh4/shix.c | 1 - hw/sparc/leon3.c | 1 - hw/sparc64/sun4u.c | 1 - hw/timer/m48t59.c | 1 - hw/timer/sh_timer.c | 1 - hw/tpm/tpm_tis.c | 1 - hw/unicore32/puv3.c | 1 - hw/virtio/dataplane/vring.c | 1 - hw/virtio/vhost.c | 1 - hw/virtio/virtio-balloon.c | 1 - hw/virtio/virtio.c | 1 - hw/xen/xen_platform.c | 1 - hw/xen/xen_pt.c | 1 - hw/xtensa/xtensa_lx60.c | 1 - hw/xtensa/xtensa_sim.c | 1 - include/disas/disas.h | 6 +- include/exec/address-spaces.h | 41 ---- include/exec/cpu-all.h | 6 + include/exec/cpu-common.h | 5 + include/exec/exec-all.h | 302 +---------------------------- include/exec/gdbstub.h | 4 +- include/exec/memory.h | 19 +- include/exec/ram_addr.h | 5 + include/exec/softmmu_template.h | 1 - include/exec/translate.h | 310 ++++++++++++++++++++++++++++++ include/hw/arm/allwinner-a10.h | 1 - include/hw/arm/omap.h | 6 + include/hw/hw.h | 13 +- include/hw/i386/apic.h | 6 + include/hw/i386/apic_internal.h | 6 + include/hw/sh4/sh_intc.h | 2 +- include/hw/xen/xen.h | 4 +- include/migration/vmstate.h | 11 ++ include/qemu-common.h | 11 -- include/qemu/log.h | 7 +- include/qom/cpu.h | 14 -- include/sysemu/dma.h | 1 - include/sysemu/kvm.h | 12 +- include/sysemu/memory_mapping.h | 3 +- ioport.c | 1 - kvm-all.c | 1 - kvm-stub.c | 1 - memory.c | 1 - memory_mapping.c | 7 +- monitor.c | 1 - target-sparc/mmu_helper.c | 1 - target-xtensa/op_helper.c | 1 - tcg/README | 2 +- tcg/tcg.h | 6 + tci.c | 2 +- translate-all.c | 10 +- translate-all.h | 27 --- ui/input.c | 2 - user-exec.c | 7 +- xen-all.c | 1 - 160 files changed, 552 insertions(+), 563 deletions(-) create mode 100644 docs/api-hierarchy.txt delete mode 100644 include/exec/address-spaces.h create mode 100644 include/exec/translate.h delete mode 100644 translate-all.h -- 1.7.9.5