qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups
@ 2016-05-19 14:43 Paolo Bonzini
  2016-05-19 14:43 ` [Qemu-devel] [PULL v4 16/52] target-ppc: make cpu-qom.h not target specific Paolo Bonzini
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Paolo Bonzini @ 2016-05-19 14:43 UTC (permalink / raw)
  To: qemu-devel

The following changes since commit 8ec4fe0a4bed4fa27e6f28a746bcf77b27cd05a3:

  Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2016-05-18' into staging (2016-05-19 09:27:28 +0100)

are available in the git repository at:

  git://github.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to df43d49cb8708b9c88a20afe0d1a3089b550a5b8:

  hw: clean up hw/hw.h includes (2016-05-19 16:42:30 +0200)

----------------------------------------------------------------
NEED_CPU_H cleanups, big enough to deserve their own pull request.

----------------------------------------------------------------
Paolo Bonzini (52):
      scripts: add script to build QEMU and analyze inclusions
      s390x: move .needed functions for subsections to machine.c
      include: move CPU-related definitions out of qemu-common.h
      log: do not use CONFIG_USER_ONLY
      cpu: make cpu-qom.h only include-able from cpu.h
      target-alpha: make cpu-qom.h not target specific
      target-arm: make cpu-qom.h not target specific
      target-cris: make cpu-qom.h not target specific
      target-i386: make cpu-qom.h not target specific
      target-lm32: make cpu-qom.h not target specific
      target-m68k: make cpu-qom.h not target specific
      target-microblaze: make cpu-qom.h not target specific
      target-mips: make cpu-qom.h not target specific
      target-ppc: do not use target_ulong in cpu-qom.h
      target-ppc: do not make PowerPCCPUClass depend on target-specific symbols
      target-ppc: make cpu-qom.h not target specific
      target-s390x: make cpu-qom.h not target specific
      target-sh4: make cpu-qom.h not target specific
      target-sparc: make cpu-qom.h not target specific
      target-tricore: make cpu-qom.h not target specific
      target-unicore32: make cpu-qom.h not target specific
      target-xtensa: make cpu-qom.h not target specific
      arm: include cpu-qom.h in files that require ARMCPU
      m68k: include cpu-qom.h in files that require M68KCPU
      sh4: include cpu-qom.h in files that require SuperHCPU
      alpha: include cpu-qom.h in files that require AlphaCPU
      mips: use MIPSCPU instead of CPUMIPSState
      ppc: use PowerPCCPU instead of CPUPPCState
      arm: remove useless cpu.h inclusion
      explicitly include qom/cpu.h
      explicitly include hw/qdev-core.h
      explicitly include linux/kvm.h
      apic: move target-dependent definitions to cpu.h
      include: poison symbols in osdep.h
      hw: do not use VMSTATE_*TL
      hw: move CPU state serialization to migration/cpu.h
      hw: cannot include hw/hw.h from user emulation
      cpu: move endian-dependent load/store functions to cpu-all.h
      qemu-common: stop including qemu/bswap.h from qemu-common.h
      qemu-common: stop including qemu/host-utils.h from qemu-common.h
      gdbstub: remove unnecessary includes from gdbstub-xml.c
      dma: do not depend on kvm_enabled()
      s390x: reorganize CSS bits between cpu.h and other headers
      acpi: do not use TARGET_PAGE_SIZE
      qemu-common: push cpu.h inclusion out of qemu-common.h
      arm: move arm_log_exception into .c file
      mips: move CP0 functions out of cpu.h
      hw: explicitly include qemu/log.h
      exec: extract exec/tb-context.h
      cpu: move exec-all.h inclusion out of cpu.h
      hw: remove pio_addr_t
      hw: clean up hw/hw.h includes

 arch_init.c                                 |   2 +
 audio/mixeng.c                              |   1 +
 audio/noaudio.c                             |   1 +
 audio/spiceaudio.c                          |   1 +
 audio/wavaudio.c                            |   2 +-
 block/bochs.c                               |   1 +
 block/cloop.c                               |   1 +
 block/parallels.c                           |   1 +
 block/qcow.c                                |   1 +
 block/qcow2-cluster.c                       |   1 +
 block/qcow2-refcount.c                      |   1 +
 block/qcow2-snapshot.c                      |   1 +
 block/qcow2.c                               |   1 +
 block/qed-table.c                           |   1 +
 block/qed.c                                 |   1 +
 block/vdi.c                                 |   1 +
 block/vhdx-endian.c                         |   1 +
 block/vhdx-log.c                            |   1 +
 block/vhdx.c                                |   1 +
 block/vmdk.c                                |   1 +
 block/vpc.c                                 |   1 +
 block/vvfat.c                               |   1 +
 bootdevice.c                                |   1 +
 bsd-user/main.c                             |   2 +
 bsd-user/qemu.h                             |   1 +
 contrib/ivshmem-server/ivshmem-server.c     |   1 +
 cpu-exec-common.c                           |   1 +
 cpu-exec.c                                  |   1 +
 cpus.c                                      |   4 +-
 cputlb.c                                    |   1 +
 crypto/afsplit.c                            |   1 +
 crypto/block-luks.c                         |   1 +
 device_tree.c                               |   1 +
 disas/tci.c                                 |   1 +
 exec.c                                      |  25 ++--
 gdbstub.c                                   |   3 +-
 hw/acpi/core.c                              |   6 +
 hw/acpi/nvdimm.c                            |  22 ++--
 hw/acpi/piix4.c                             |   1 +
 hw/alpha/alpha_sys.h                        |   1 +
 hw/alpha/pci.c                              |   1 -
 hw/arm/ast2400.c                            |   1 +
 hw/arm/collie.c                             |   1 +
 hw/arm/nseries.c                            |   3 +
 hw/arm/palmetto-bmc.c                       |   1 +
 hw/arm/pxa2xx_gpio.c                        |   2 +
 hw/arm/stellaris.c                          |   1 +
 hw/arm/stm32f205_soc.c                      |   1 -
 hw/arm/strongarm.c                          |   1 +
 hw/arm/strongarm.h                          |   1 +
 hw/arm/xlnx-ep108.c                         |   1 +
 hw/audio/pl041.c                            |   1 +
 hw/block/hd-geometry.c                      |   1 +
 hw/block/m25p80.c                           |   1 +
 hw/block/pflash_cfi01.c                     |   1 +
 hw/bt/hci-csr.c                             |   1 +
 hw/bt/l2cap.c                               |   1 +
 hw/bt/sdp.c                                 |   1 +
 hw/char/bcm2835_aux.c                       |   1 +
 hw/char/cadence_uart.c                      |   4 +
 hw/char/digic-uart.c                        |   1 +
 hw/char/imx_serial.c                        |   1 +
 hw/char/pl011.c                             |   1 +
 hw/char/stm32f2xx_usart.c                   |   1 +
 hw/core/Makefile.objs                       |   2 +-
 hw/core/nmi.c                               |   5 +
 hw/core/sysbus.c                            |   4 +-
 hw/cpu/a9mpcore.c                           |   1 +
 hw/display/bcm2835_fb.c                     |   1 +
 hw/display/cg3.c                            |   2 +
 hw/display/pl110.c                          |   1 +
 hw/display/tc6393xb.c                       |   1 +
 hw/display/virtio-gpu.c                     |   1 +
 hw/dma/bcm2835_dma.c                        |   1 +
 hw/dma/pl080.c                              |   1 +
 hw/dma/pl330.c                              |   1 +
 hw/dma/rc4030.c                             |   1 +
 hw/gpio/gpio_key.c                          |   1 +
 hw/gpio/imx_gpio.c                          |   1 +
 hw/gpio/pl061.c                             |   1 +
 hw/i2c/imx_i2c.c                            |   1 +
 hw/i2c/versatile_i2c.c                      |   1 +
 hw/i386/kvm/apic.c                          |   2 +
 hw/i386/kvm/clock.c                         |   1 +
 hw/i386/kvm/i8254.c                         |   1 +
 hw/i386/kvm/pci-assign.c                    |   1 +
 hw/i386/kvmvapic.c                          |   3 +
 hw/input/pl050.c                            |   1 +
 hw/intc/allwinner-a10-pic.c                 |   1 +
 hw/intc/apic.c                              |   2 +
 hw/intc/apic_common.c                       |   2 +
 hw/intc/arm_gic.c                           |   1 +
 hw/intc/arm_gic_kvm.c                       |   2 +
 hw/intc/arm_gicv2m.c                        |   2 +
 hw/intc/armv7m_nvic.c                       |   2 +
 hw/intc/bcm2835_ic.c                        |   1 +
 hw/intc/bcm2836_control.c                   |   1 +
 hw/intc/i8259.c                             |   1 +
 hw/intc/imx_avic.c                          |   1 +
 hw/intc/ioapic.c                            |   1 +
 hw/intc/openpic.c                           |   1 +
 hw/intc/openpic_kvm.c                       |   2 +
 hw/intc/pl190.c                             |   1 +
 hw/intc/s390_flic_kvm.c                     |   2 +
 hw/intc/xics_kvm.c                          |   1 +
 hw/isa/lpc_ich9.c                           |   1 +
 hw/mips/cps.c                               |   7 +-
 hw/mips/cputimer.c                          |   4 +-
 hw/mips/mips_fulong2e.c                     |   4 +-
 hw/mips/mips_int.c                          |   3 +-
 hw/mips/mips_jazz.c                         |   4 +-
 hw/mips/mips_malta.c                        |   5 +-
 hw/mips/mips_mipssim.c                      |   4 +-
 hw/mips/mips_r4k.c                          |   4 +-
 hw/misc/arm11scu.c                          |   1 +
 hw/misc/arm_integrator_debug.c              |   1 +
 hw/misc/arm_l2x0.c                          |   1 +
 hw/misc/arm_sysctl.c                        |   1 +
 hw/misc/bcm2835_mbox.c                      |   1 +
 hw/misc/bcm2835_property.c                  |   1 +
 hw/misc/imx25_ccm.c                         |   1 +
 hw/misc/imx31_ccm.c                         |   1 +
 hw/misc/imx6_ccm.c                          |   1 +
 hw/misc/imx6_src.c                          |   1 +
 hw/misc/imx_ccm.c                           |   1 +
 hw/misc/macio/cuda.c                        |   1 +
 hw/misc/macio/mac_dbdma.c                   |   1 +
 hw/misc/mips_cmgcr.c                        |   1 +
 hw/misc/mips_cpc.c                          |   2 +
 hw/misc/mips_itu.c                          |   3 +
 hw/misc/pci-testdev.c                       |   1 +
 hw/misc/stm32f2xx_syscfg.c                  |   1 +
 hw/misc/zynq-xadc.c                         |   1 +
 hw/misc/zynq_slcr.c                         |   1 +
 hw/net/allwinner_emac.c                     |   1 +
 hw/net/fsl_etsec/etsec.c                    |   1 +
 hw/net/fsl_etsec/rings.c                    |   2 +-
 hw/net/imx_fec.c                            |   1 +
 hw/net/lan9118.c                            |   1 +
 hw/net/spapr_llan.c                         |   9 +-
 hw/pci-host/apb.c                           |   1 +
 hw/pci-host/versatile.c                     |   1 +
 hw/ppc/e500plat.c                           |   1 +
 hw/ppc/ppc.c                                |  20 +--
 hw/ppc/ppc4xx_devs.c                        |   1 +
 hw/ppc/prep.c                               |   1 +
 hw/ppc/spapr.c                              |   1 +
 hw/ppc/spapr_hcall.c                        |   3 +
 hw/ppc/spapr_iommu.c                        |   1 +
 hw/ppc/spapr_pci.c                          |   1 +
 hw/ppc/spapr_rtas.c                         |   2 +
 hw/ppc/spapr_vio.c                          |   3 +-
 hw/ppc/virtex_ml507.c                       |   1 +
 hw/s390x/css.c                              |   4 +-
 hw/s390x/s390-skeys.c                       |   1 +
 hw/s390x/s390-virtio-ccw.c                  |   4 +-
 hw/s390x/virtio-ccw.c                       |   5 +-
 hw/s390x/virtio-ccw.h                       |   3 +-
 hw/sd/pl181.c                               |   1 +
 hw/sd/sd.c                                  |   1 +
 hw/sd/sdhci.c                               |   1 +
 hw/sh4/sh7750.c                             |   1 +
 hw/ssi/imx_spi.c                            |   1 +
 hw/ssi/pl022.c                              |   1 +
 hw/timer/allwinner-a10-pit.c                |   1 +
 hw/timer/arm_timer.c                        |   1 +
 hw/timer/digic-timer.c                      |   1 +
 hw/timer/imx_epit.c                         |   1 +
 hw/timer/imx_gpt.c                          |   1 +
 hw/timer/pl031.c                            |   1 +
 hw/timer/stm32f2xx_timer.c                  |   1 +
 hw/vfio/common.c                            |   3 +
 hw/watchdog/wdt_diag288.c                   |   1 +
 hw/xtensa/pic_cpu.c                         |   1 +
 include/disas/disas.h                       |   2 +
 include/exec/cpu-all.h                      |  25 ++++
 include/exec/cpu-common.h                   |  14 ---
 include/exec/cpu-defs.h                     |   1 +
 include/exec/exec-all.h                     |  54 +-------
 include/exec/gdbstub.h                      |   2 +
 include/exec/helper-head.h                  |  23 ++--
 include/exec/hwaddr.h                       |   2 +
 include/exec/ioport.h                       |  19 +--
 include/exec/memory.h                       |  17 ---
 include/exec/poison.h                       |   8 --
 include/exec/tb-context.h                   |  44 +++++++
 include/hw/acpi/acpi.h                      |   7 --
 include/hw/arm/arm.h                        |   2 +-
 include/hw/arm/digic.h                      |   1 -
 include/hw/arm/exynos4210.h                 |   1 +
 include/hw/arm/fsl-imx6.h                   |   1 +
 include/hw/arm/omap.h                       |   1 +
 include/hw/arm/pxa.h                        |   1 +
 include/hw/arm/virt-acpi-build.h            |   1 +
 include/hw/arm/virt.h                       |   1 +
 include/hw/hw.h                             |  60 +--------
 include/hw/i386/apic.h                      |   5 -
 include/hw/isa/isa.h                        |   2 +-
 include/hw/m68k/mcf.h                       |   2 +
 include/hw/mips/cpudevs.h                   |   7 +-
 include/hw/ppc/openpic.h                    |   3 +-
 include/hw/ppc/ppc.h                        |  24 ++--
 include/hw/ppc/spapr_vio.h                  |   2 +-
 {hw => include/hw}/s390x/css.h              |  31 ++++-
 {target-s390x => include/hw/s390x}/ioinst.h |  16 +--
 include/hw/sd/sd.h                          |   2 +
 include/hw/sh4/sh.h                         |   1 +
 include/hw/sysbus.h                         |   4 +-
 include/hw/xen/xen.h                        |   7 +-
 include/migration/cpu.h                     |  48 +++++++
 include/qemu-common.h                       |  32 -----
 include/qemu/log.h                          |  17 +--
 include/qemu/osdep.h                        |   2 +
 include/qemu/timer.h                        |   1 +
 include/qom/cpu.h                           |  19 +++
 include/sysemu/cpus.h                       |  13 ++
 include/sysemu/dma.h                        |   5 +-
 include/sysemu/kvm.h                        |   1 +
 io/channel-websock.c                        |   1 +
 ioport.c                                    |  14 ++-
 kvm-stub.c                                  |   1 -
 linux-user/main.c                           |   2 +
 linux-user/qemu.h                           |   1 +
 memory.c                                    |   2 +
 migration/ram.c                             |   2 +
 migration/savevm.c                          |   1 +
 monitor.c                                   |   4 +
 nbd/nbd-internal.h                          |   1 +
 page_cache.c                                |   1 +
 qemu-nbd.c                                  |   1 +
 qtest.c                                     |   2 +
 scripts/analyze-inclusions                  | 102 +++++++++++++++
 scripts/create_config                       |   2 +-
 scripts/feature_to_c.sh                     |   2 -
 scripts/tracetool/format/tcg_helper_c.py    |   1 +
 slirp/slirp.h                               |   1 +
 stubs/cpu-get-icount.c                      |   1 +
 stubs/slirp.c                               |   1 +
 target-alpha/cpu-qom.h                      |  41 +-----
 target-alpha/cpu.c                          |   1 +
 target-alpha/cpu.h                          |  44 ++++++-
 target-alpha/fpu_helper.c                   |   1 +
 target-alpha/gdbstub.c                      |   1 +
 target-alpha/helper.c                       |   1 +
 target-alpha/int_helper.c                   |   1 +
 target-alpha/machine.c                      |   3 +
 target-alpha/mem_helper.c                   |   1 +
 target-alpha/sys_helper.c                   |   1 +
 target-alpha/translate.c                    |   1 +
 target-alpha/vax_helper.c                   |   1 +
 target-arm/arm-powerctl.c                   |   2 +
 target-arm/arm_ldst.h                       |   1 +
 target-arm/cpu-qom.h                        | 178 +-------------------------
 target-arm/cpu.c                            |   1 +
 target-arm/cpu.h                            | 181 +++++++++++++++++++++++++-
 target-arm/gdbstub.c                        |   1 +
 target-arm/gdbstub64.c                      |   1 +
 target-arm/helper-a64.c                     |   1 +
 target-arm/helper.c                         |  16 +++
 target-arm/internals.h                      |  15 ---
 target-arm/kvm-stub.c                       |   1 +
 target-arm/kvm.c                            |   1 +
 target-arm/kvm32.c                          |   3 +-
 target-arm/kvm64.c                          |   2 +-
 target-arm/machine.c                        |   3 +
 target-arm/op_helper.c                      |   1 +
 target-arm/psci.c                           |   2 +-
 target-arm/translate-a64.c                  |   1 +
 target-arm/translate.c                      |   1 +
 target-cris/cpu-qom.h                       |  40 +-----
 target-cris/cpu.c                           |   1 +
 target-cris/cpu.h                           |  43 ++++++-
 target-cris/gdbstub.c                       |   1 +
 target-cris/helper.c                        |   1 +
 target-cris/machine.c                       |   3 +
 target-cris/mmu.c                           |   1 +
 target-cris/op_helper.c                     |   1 +
 target-cris/translate.c                     |   1 +
 target-i386/bpt_helper.c                    |   1 +
 target-i386/cpu-qom.h                       |  98 +--------------
 target-i386/cpu.c                           |   3 +-
 target-i386/cpu.h                           | 107 +++++++++++++++-
 target-i386/excp_helper.c                   |   1 +
 target-i386/fpu_helper.c                    |   1 +
 target-i386/gdbstub.c                       |   1 +
 target-i386/helper.c                        |   1 +
 target-i386/int_helper.c                    |   1 +
 target-i386/kvm-stub.c                      |   1 +
 target-i386/kvm.c                           |   2 +-
 target-i386/machine.c                       |   6 +
 target-i386/mem_helper.c                    |   1 +
 target-i386/misc_helper.c                   |   1 +
 target-i386/mpx_helper.c                    |   1 +
 target-i386/seg_helper.c                    |   1 +
 target-i386/svm_helper.c                    |   1 +
 target-i386/translate.c                     |   1 +
 target-lm32/cpu-qom.h                       |  42 +------
 target-lm32/cpu.c                           |   1 +
 target-lm32/cpu.h                           |  46 ++++++-
 target-lm32/gdbstub.c                       |   1 +
 target-lm32/helper.c                        |   1 +
 target-lm32/machine.c                       |   3 +
 target-lm32/op_helper.c                     |   1 +
 target-lm32/translate.c                     |   1 +
 target-m68k/cpu-qom.h                       |  34 +----
 target-m68k/cpu.c                           |   1 +
 target-m68k/cpu.h                           |  38 +++++-
 target-m68k/gdbstub.c                       |   1 +
 target-m68k/helper.c                        |   1 +
 target-m68k/m68k-semi.c                     |   1 +
 target-m68k/op_helper.c                     |   1 +
 target-m68k/translate.c                     |   1 +
 target-microblaze/cpu-qom.h                 |  44 +------
 target-microblaze/cpu.c                     |   1 +
 target-microblaze/cpu.h                     |  47 ++++++-
 target-microblaze/gdbstub.c                 |   1 +
 target-microblaze/helper.c                  |   1 +
 target-microblaze/mmu.c                     |   1 +
 target-microblaze/op_helper.c               |   1 +
 target-microblaze/translate.c               |   1 +
 target-mips/cpu-qom.h                       |  37 +-----
 target-mips/cpu.c                           |   1 +
 target-mips/cpu.h                           | 171 +++++++------------------
 target-mips/gdbstub.c                       |   1 +
 target-mips/helper.c                        | 126 +++++++++++++++++++
 target-mips/kvm.c                           |   2 +-
 target-mips/machine.c                       |   4 +-
 target-mips/mips-semi.c                     |   1 +
 target-mips/msa_helper.c                    |   1 +
 target-mips/op_helper.c                     |   1 +
 target-mips/translate.c                     |   1 +
 target-moxie/cpu.c                          |   1 +
 target-moxie/cpu.h                          |   1 -
 target-moxie/machine.c                      |   3 +
 target-openrisc/cpu.c                       |   1 +
 target-openrisc/cpu.h                       |   2 -
 target-openrisc/exception.c                 |   1 +
 target-openrisc/gdbstub.c                   |   1 +
 target-openrisc/interrupt.c                 |   1 +
 target-openrisc/interrupt_helper.c          |   1 +
 target-openrisc/machine.c                   |   3 +
 target-openrisc/mmu.c                       |   1 +
 target-openrisc/mmu_helper.c                |   1 +
 target-openrisc/sys_helper.c                |   1 +
 target-ppc/cpu-qom.h                        | 167 +++++++++++++++---------
 target-ppc/cpu.h                            | 167 ++++++++----------------
 target-ppc/excp_helper.c                    |   1 +
 target-ppc/gdbstub.c                        |   1 +
 target-ppc/int_helper.c                     |   1 +
 target-ppc/kvm-stub.c                       |   1 +
 target-ppc/kvm.c                            |   2 +-
 target-ppc/machine.c                        |   5 +
 target-ppc/mem_helper.c                     |   2 +
 target-ppc/misc_helper.c                    |   1 +
 target-ppc/mmu-hash32.c                     |   3 +-
 target-ppc/mmu-hash32.h                     |   2 +-
 target-ppc/mmu-hash64.c                     |   3 +-
 target-ppc/mmu-hash64.h                     |   2 +-
 target-ppc/mmu_helper.c                     |   1 +
 target-ppc/timebase_helper.c                |   1 +
 target-ppc/translate.c                      |   1 +
 target-ppc/translate_init.c                 |  92 ++++++--------
 target-s390x/cc_helper.c                    |   1 +
 target-s390x/cpu-qom.h                      |  46 +------
 target-s390x/cpu.c                          |   4 +-
 target-s390x/cpu.h                          | 188 ++++++++++------------------
 target-s390x/fpu_helper.c                   |   1 +
 target-s390x/gdbstub.c                      |   2 +
 target-s390x/helper.c                       |   2 +
 target-s390x/int_helper.c                   |   1 +
 target-s390x/interrupt.c                    |  66 +++++++++-
 target-s390x/ioinst.c                       |   2 +-
 target-s390x/kvm.c                          |   2 +-
 target-s390x/machine.c                      |  20 +++
 target-s390x/mem_helper.c                   |   4 +
 target-s390x/misc_helper.c                  |   3 +-
 target-s390x/translate.c                    |   1 +
 target-sh4/cpu-qom.h                        |  31 +----
 target-sh4/cpu.c                            |   1 +
 target-sh4/cpu.h                            |  34 ++++-
 target-sh4/gdbstub.c                        |   1 +
 target-sh4/helper.c                         |   1 +
 target-sh4/op_helper.c                      |   1 +
 target-sh4/translate.c                      |   1 +
 target-sparc/cpu-qom.h                      |  38 +-----
 target-sparc/cpu.c                          |   1 +
 target-sparc/cpu.h                          |  40 +++++-
 target-sparc/gdbstub.c                      |   1 +
 target-sparc/helper.c                       |   1 +
 target-sparc/ldst_helper.c                  |   1 +
 target-sparc/machine.c                      |   6 +
 target-sparc/mmu_helper.c                   |   1 +
 target-sparc/translate.c                    |   1 +
 target-tilegx/cpu.c                         |   1 +
 target-tilegx/cpu.h                         |   2 -
 target-tilegx/helper.c                      |   1 +
 target-tilegx/translate.c                   |   1 +
 target-tricore/cpu-qom.h                    |  28 +----
 target-tricore/cpu.c                        |   1 +
 target-tricore/cpu.h                        |  32 ++++-
 target-tricore/helper.c                     |   1 +
 target-tricore/op_helper.c                  |   1 +
 target-tricore/translate.c                  |   1 +
 target-unicore32/cpu-qom.h                  |  30 +----
 target-unicore32/cpu.c                      |   1 +
 target-unicore32/cpu.h                      |  32 ++++-
 target-unicore32/helper.c                   |   1 +
 target-unicore32/op_helper.c                |   1 +
 target-unicore32/softmmu.c                  |   1 +
 target-unicore32/translate.c                |   1 +
 target-xtensa/cpu-qom.h                     |  39 +-----
 target-xtensa/cpu.c                         |   1 +
 target-xtensa/cpu.h                         |  42 ++++++-
 target-xtensa/gdbstub.c                     |   2 +
 target-xtensa/op_helper.c                   |   1 +
 target-xtensa/translate.c                   |   1 +
 tcg/optimize.c                              |   3 +-
 tcg/tcg-common.c                            |   2 +
 tcg/tcg-op.c                                |   3 +
 tcg/tcg.c                                   |   5 +
 tcg/tcg.h                                   |  23 ++++
 tests/ide-test.c                            |   1 +
 tests/libqos/malloc.c                       |   1 +
 translate-all.c                             |   1 +
 translate-common.c                          |   1 +
 ui/vnc-ws.c                                 |   1 +
 user-exec.c                                 |   1 +
 util/buffer.c                               |   1 +
 util/log.c                                  |  12 +-
 vl.c                                        |   2 +
 xen-hvm.c                                   |   9 +-
 431 files changed, 2099 insertions(+), 1618 deletions(-)
 create mode 100644 include/exec/tb-context.h
 rename {hw => include/hw}/s390x/css.h (76%)
 rename {target-s390x => include/hw/s390x}/ioinst.h (87%)
 create mode 100644 include/migration/cpu.h
 create mode 100644 scripts/analyze-inclusions
-- 
2.5.5

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PULL v4 16/52] target-ppc: make cpu-qom.h not target specific
  2016-05-19 14:43 [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Paolo Bonzini
@ 2016-05-19 14:43 ` Paolo Bonzini
  2016-05-19 14:43 ` [Qemu-devel] [PULL v4 22/52] target-xtensa: " Paolo Bonzini
  2016-05-19 15:53 ` [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Peter Maydell
  2 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2016-05-19 14:43 UTC (permalink / raw)
  To: qemu-devel

Make PowerPCCPU an opaque type within cpu-qom.h, and move all definitions
of private methods, as well as all type definitions that require knowledge
of the layout to cpu.h.  Conversely, move all definitions needed to define
a class to cpu-qom.h.  This helps making files independent of NEED_CPU_H
if they only need to pass around CPU pointers.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target-ppc/cpu-qom.h | 159 +++++++++++++++++++++++++++++++++----------------
 target-ppc/cpu.h     | 165 ++++++++++++++++-----------------------------------
 2 files changed, 161 insertions(+), 163 deletions(-)

diff --git a/target-ppc/cpu-qom.h b/target-ppc/cpu-qom.h
index 6f4e929..07358aa 100644
--- a/target-ppc/cpu-qom.h
+++ b/target-ppc/cpu-qom.h
@@ -38,6 +38,115 @@
     OBJECT_GET_CLASS(PowerPCCPUClass, (obj), TYPE_POWERPC_CPU)
 
 typedef struct PowerPCCPU PowerPCCPU;
+typedef struct CPUPPCState CPUPPCState;
+typedef struct ppc_tb_t ppc_tb_t;
+typedef struct ppc_dcr_t ppc_dcr_t;
+
+/*****************************************************************************/
+/* MMU model                                                                 */
+typedef enum powerpc_mmu_t powerpc_mmu_t;
+enum powerpc_mmu_t {
+    POWERPC_MMU_UNKNOWN    = 0x00000000,
+    /* Standard 32 bits PowerPC MMU                            */
+    POWERPC_MMU_32B        = 0x00000001,
+    /* PowerPC 6xx MMU with software TLB                       */
+    POWERPC_MMU_SOFT_6xx   = 0x00000002,
+    /* PowerPC 74xx MMU with software TLB                      */
+    POWERPC_MMU_SOFT_74xx  = 0x00000003,
+    /* PowerPC 4xx MMU with software TLB                       */
+    POWERPC_MMU_SOFT_4xx   = 0x00000004,
+    /* PowerPC 4xx MMU with software TLB and zones protections */
+    POWERPC_MMU_SOFT_4xx_Z = 0x00000005,
+    /* PowerPC MMU in real mode only                           */
+    POWERPC_MMU_REAL       = 0x00000006,
+    /* Freescale MPC8xx MMU model                              */
+    POWERPC_MMU_MPC8xx     = 0x00000007,
+    /* BookE MMU model                                         */
+    POWERPC_MMU_BOOKE      = 0x00000008,
+    /* BookE 2.06 MMU model                                    */
+    POWERPC_MMU_BOOKE206   = 0x00000009,
+    /* PowerPC 601 MMU model (specific BATs format)            */
+    POWERPC_MMU_601        = 0x0000000A,
+#define POWERPC_MMU_64       0x00010000
+#define POWERPC_MMU_1TSEG    0x00020000
+#define POWERPC_MMU_AMR      0x00040000
+    /* 64 bits PowerPC MMU                                     */
+    POWERPC_MMU_64B        = POWERPC_MMU_64 | 0x00000001,
+    /* Architecture 2.03 and later (has LPCR) */
+    POWERPC_MMU_2_03       = POWERPC_MMU_64 | 0x00000002,
+    /* Architecture 2.06 variant                               */
+    POWERPC_MMU_2_06       = POWERPC_MMU_64 | POWERPC_MMU_1TSEG
+                             | POWERPC_MMU_AMR | 0x00000003,
+    /* Architecture 2.06 "degraded" (no 1T segments)           */
+    POWERPC_MMU_2_06a      = POWERPC_MMU_64 | POWERPC_MMU_AMR
+                             | 0x00000003,
+    /* Architecture 2.07 variant                               */
+    POWERPC_MMU_2_07       = POWERPC_MMU_64 | POWERPC_MMU_1TSEG
+                             | POWERPC_MMU_AMR | 0x00000004,
+    /* Architecture 2.07 "degraded" (no 1T segments)           */
+    POWERPC_MMU_2_07a      = POWERPC_MMU_64 | POWERPC_MMU_AMR
+                             | 0x00000004,
+};
+
+/*****************************************************************************/
+/* Exception model                                                           */
+typedef enum powerpc_excp_t powerpc_excp_t;
+enum powerpc_excp_t {
+    POWERPC_EXCP_UNKNOWN   = 0,
+    /* Standard PowerPC exception model */
+    POWERPC_EXCP_STD,
+    /* PowerPC 40x exception model      */
+    POWERPC_EXCP_40x,
+    /* PowerPC 601 exception model      */
+    POWERPC_EXCP_601,
+    /* PowerPC 602 exception model      */
+    POWERPC_EXCP_602,
+    /* PowerPC 603 exception model      */
+    POWERPC_EXCP_603,
+    /* PowerPC 603e exception model     */
+    POWERPC_EXCP_603E,
+    /* PowerPC G2 exception model       */
+    POWERPC_EXCP_G2,
+    /* PowerPC 604 exception model      */
+    POWERPC_EXCP_604,
+    /* PowerPC 7x0 exception model      */
+    POWERPC_EXCP_7x0,
+    /* PowerPC 7x5 exception model      */
+    POWERPC_EXCP_7x5,
+    /* PowerPC 74xx exception model     */
+    POWERPC_EXCP_74xx,
+    /* BookE exception model            */
+    POWERPC_EXCP_BOOKE,
+    /* PowerPC 970 exception model      */
+    POWERPC_EXCP_970,
+    /* POWER7 exception model           */
+    POWERPC_EXCP_POWER7,
+    /* POWER8 exception model           */
+    POWERPC_EXCP_POWER8,
+};
+
+/*****************************************************************************/
+/* Input pins model                                                          */
+typedef enum powerpc_input_t powerpc_input_t;
+enum powerpc_input_t {
+    PPC_FLAGS_INPUT_UNKNOWN = 0,
+    /* PowerPC 6xx bus                  */
+    PPC_FLAGS_INPUT_6xx,
+    /* BookE bus                        */
+    PPC_FLAGS_INPUT_BookE,
+    /* PowerPC 405 bus                  */
+    PPC_FLAGS_INPUT_405,
+    /* PowerPC 970 bus                  */
+    PPC_FLAGS_INPUT_970,
+    /* PowerPC POWER7 bus               */
+    PPC_FLAGS_INPUT_POWER7,
+    /* PowerPC 401 bus                  */
+    PPC_FLAGS_INPUT_401,
+    /* Freescale RCPU bus               */
+    PPC_FLAGS_INPUT_RCPU,
+};
+
+struct ppc_segment_page_sizes;
 
 /**
  * PowerPCCPUClass:
@@ -74,57 +183,7 @@ typedef struct PowerPCCPUClass {
     bool (*interrupts_big_endian)(PowerPCCPU *cpu);
 } PowerPCCPUClass;
 
-/**
- * PowerPCCPU:
- * @env: #CPUPPCState
- * @cpu_dt_id: CPU index used in the device tree. KVM uses this index too
- * @max_compat: Maximal supported logical PVR from the command line
- * @cpu_version: Current logical PVR, zero if in "raw" mode
- *
- * A PowerPC CPU.
- */
-struct PowerPCCPU {
-    /*< private >*/
-    CPUState parent_obj;
-    /*< public >*/
-
-    CPUPPCState env;
-    int cpu_dt_id;
-    uint32_t max_compat;
-    uint32_t cpu_version;
-};
-
-static inline PowerPCCPU *ppc_env_get_cpu(CPUPPCState *env)
-{
-    return container_of(env, PowerPCCPU, env);
-}
-
-#define ENV_GET_CPU(e) CPU(ppc_env_get_cpu(e))
-
-#define ENV_OFFSET offsetof(PowerPCCPU, env)
-
-PowerPCCPUClass *ppc_cpu_class_by_pvr(uint32_t pvr);
-PowerPCCPUClass *ppc_cpu_class_by_pvr_mask(uint32_t pvr);
-
-void ppc_cpu_do_interrupt(CPUState *cpu);
-bool ppc_cpu_exec_interrupt(CPUState *cpu, int int_req);
-void ppc_cpu_dump_state(CPUState *cpu, FILE *f, fprintf_function cpu_fprintf,
-                        int flags);
-void ppc_cpu_dump_statistics(CPUState *cpu, FILE *f,
-                             fprintf_function cpu_fprintf, int flags);
-int ppc_cpu_get_monitor_def(CPUState *cs, const char *name,
-                            uint64_t *pval);
-hwaddr ppc_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
-int ppc_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
-int ppc_cpu_gdb_read_register_apple(CPUState *cpu, uint8_t *buf, int reg);
-int ppc_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
-int ppc_cpu_gdb_write_register_apple(CPUState *cpu, uint8_t *buf, int reg);
-int ppc64_cpu_write_elf64_note(WriteCoreDumpFunction f, CPUState *cs,
-                               int cpuid, void *opaque);
 #ifndef CONFIG_USER_ONLY
-void ppc_cpu_do_system_reset(CPUState *cs);
-extern const struct VMStateDescription vmstate_ppc_cpu;
-
 typedef struct PPCTimebase {
     uint64_t guest_timebase;
     int64_t time_of_the_day_ns;
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index 508f03b..69b6f29 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -76,7 +76,7 @@
 #define CPUArchState struct CPUPPCState
 
 #include "exec/cpu-defs.h"
-
+#include "cpu-qom.h"
 #include "fpu/softfloat.h"
 
 #if defined (TARGET_PPC64)
@@ -86,93 +86,6 @@
 #endif
 
 /*****************************************************************************/
-/* MMU model                                                                 */
-typedef enum powerpc_mmu_t powerpc_mmu_t;
-enum powerpc_mmu_t {
-    POWERPC_MMU_UNKNOWN    = 0x00000000,
-    /* Standard 32 bits PowerPC MMU                            */
-    POWERPC_MMU_32B        = 0x00000001,
-    /* PowerPC 6xx MMU with software TLB                       */
-    POWERPC_MMU_SOFT_6xx   = 0x00000002,
-    /* PowerPC 74xx MMU with software TLB                      */
-    POWERPC_MMU_SOFT_74xx  = 0x00000003,
-    /* PowerPC 4xx MMU with software TLB                       */
-    POWERPC_MMU_SOFT_4xx   = 0x00000004,
-    /* PowerPC 4xx MMU with software TLB and zones protections */
-    POWERPC_MMU_SOFT_4xx_Z = 0x00000005,
-    /* PowerPC MMU in real mode only                           */
-    POWERPC_MMU_REAL       = 0x00000006,
-    /* Freescale MPC8xx MMU model                              */
-    POWERPC_MMU_MPC8xx     = 0x00000007,
-    /* BookE MMU model                                         */
-    POWERPC_MMU_BOOKE      = 0x00000008,
-    /* BookE 2.06 MMU model                                    */
-    POWERPC_MMU_BOOKE206   = 0x00000009,
-    /* PowerPC 601 MMU model (specific BATs format)            */
-    POWERPC_MMU_601        = 0x0000000A,
-#if defined(TARGET_PPC64)
-#define POWERPC_MMU_64       0x00010000
-#define POWERPC_MMU_1TSEG    0x00020000
-#define POWERPC_MMU_AMR      0x00040000
-    /* 64 bits PowerPC MMU                                     */
-    POWERPC_MMU_64B        = POWERPC_MMU_64 | 0x00000001,
-    /* Architecture 2.03 and later (has LPCR) */
-    POWERPC_MMU_2_03       = POWERPC_MMU_64 | 0x00000002,
-    /* Architecture 2.06 variant                               */
-    POWERPC_MMU_2_06       = POWERPC_MMU_64 | POWERPC_MMU_1TSEG
-                             | POWERPC_MMU_AMR | 0x00000003,
-    /* Architecture 2.06 "degraded" (no 1T segments)           */
-    POWERPC_MMU_2_06a      = POWERPC_MMU_64 | POWERPC_MMU_AMR
-                             | 0x00000003,
-    /* Architecture 2.07 variant                               */
-    POWERPC_MMU_2_07       = POWERPC_MMU_64 | POWERPC_MMU_1TSEG
-                             | POWERPC_MMU_AMR | 0x00000004,
-    /* Architecture 2.07 "degraded" (no 1T segments)           */
-    POWERPC_MMU_2_07a      = POWERPC_MMU_64 | POWERPC_MMU_AMR
-                             | 0x00000004,
-#endif /* defined(TARGET_PPC64) */
-};
-
-/*****************************************************************************/
-/* Exception model                                                           */
-typedef enum powerpc_excp_t powerpc_excp_t;
-enum powerpc_excp_t {
-    POWERPC_EXCP_UNKNOWN   = 0,
-    /* Standard PowerPC exception model */
-    POWERPC_EXCP_STD,
-    /* PowerPC 40x exception model      */
-    POWERPC_EXCP_40x,
-    /* PowerPC 601 exception model      */
-    POWERPC_EXCP_601,
-    /* PowerPC 602 exception model      */
-    POWERPC_EXCP_602,
-    /* PowerPC 603 exception model      */
-    POWERPC_EXCP_603,
-    /* PowerPC 603e exception model     */
-    POWERPC_EXCP_603E,
-    /* PowerPC G2 exception model       */
-    POWERPC_EXCP_G2,
-    /* PowerPC 604 exception model      */
-    POWERPC_EXCP_604,
-    /* PowerPC 7x0 exception model      */
-    POWERPC_EXCP_7x0,
-    /* PowerPC 7x5 exception model      */
-    POWERPC_EXCP_7x5,
-    /* PowerPC 74xx exception model     */
-    POWERPC_EXCP_74xx,
-    /* BookE exception model            */
-    POWERPC_EXCP_BOOKE,
-#if defined(TARGET_PPC64)
-    /* PowerPC 970 exception model      */
-    POWERPC_EXCP_970,
-    /* POWER7 exception model           */
-    POWERPC_EXCP_POWER7,
-    /* POWER8 exception model           */
-    POWERPC_EXCP_POWER8,
-#endif /* defined(TARGET_PPC64) */
-};
-
-/*****************************************************************************/
 /* Exception vectors definitions                                             */
 enum {
     POWERPC_EXCP_NONE    = -1,
@@ -297,27 +210,6 @@ enum {
     POWERPC_EXCP_TRAP          = 0x40,
 };
 
-/*****************************************************************************/
-/* Input pins model                                                          */
-typedef enum powerpc_input_t powerpc_input_t;
-enum powerpc_input_t {
-    PPC_FLAGS_INPUT_UNKNOWN = 0,
-    /* PowerPC 6xx bus                  */
-    PPC_FLAGS_INPUT_6xx,
-    /* BookE bus                        */
-    PPC_FLAGS_INPUT_BookE,
-    /* PowerPC 405 bus                  */
-    PPC_FLAGS_INPUT_405,
-    /* PowerPC 970 bus                  */
-    PPC_FLAGS_INPUT_970,
-    /* PowerPC POWER7 bus               */
-    PPC_FLAGS_INPUT_POWER7,
-    /* PowerPC 401 bus                  */
-    PPC_FLAGS_INPUT_401,
-    /* Freescale RCPU bus               */
-    PPC_FLAGS_INPUT_RCPU,
-};
-
 #define PPC_INPUT(env) (env->bus_model)
 
 /*****************************************************************************/
@@ -325,11 +217,8 @@ typedef struct opc_handler_t opc_handler_t;
 
 /*****************************************************************************/
 /* Types used to describe some PowerPC registers */
-typedef struct CPUPPCState CPUPPCState;
 typedef struct DisasContext DisasContext;
-typedef struct ppc_tb_t ppc_tb_t;
 typedef struct ppc_spr_t ppc_spr_t;
-typedef struct ppc_dcr_t ppc_dcr_t;
 typedef union ppc_avr_t ppc_avr_t;
 typedef union ppc_tlb_t ppc_tlb_t;
 
@@ -1215,7 +1104,57 @@ do {                                            \
     env->wdt_period[3] = (d_);                  \
  } while (0)
 
-#include "cpu-qom.h"
+/**
+ * PowerPCCPU:
+ * @env: #CPUPPCState
+ * @cpu_dt_id: CPU index used in the device tree. KVM uses this index too
+ * @max_compat: Maximal supported logical PVR from the command line
+ * @cpu_version: Current logical PVR, zero if in "raw" mode
+ *
+ * A PowerPC CPU.
+ */
+struct PowerPCCPU {
+    /*< private >*/
+    CPUState parent_obj;
+    /*< public >*/
+
+    CPUPPCState env;
+    int cpu_dt_id;
+    uint32_t max_compat;
+    uint32_t cpu_version;
+};
+
+static inline PowerPCCPU *ppc_env_get_cpu(CPUPPCState *env)
+{
+    return container_of(env, PowerPCCPU, env);
+}
+
+#define ENV_GET_CPU(e) CPU(ppc_env_get_cpu(e))
+
+#define ENV_OFFSET offsetof(PowerPCCPU, env)
+
+PowerPCCPUClass *ppc_cpu_class_by_pvr(uint32_t pvr);
+PowerPCCPUClass *ppc_cpu_class_by_pvr_mask(uint32_t pvr);
+
+void ppc_cpu_do_interrupt(CPUState *cpu);
+bool ppc_cpu_exec_interrupt(CPUState *cpu, int int_req);
+void ppc_cpu_dump_state(CPUState *cpu, FILE *f, fprintf_function cpu_fprintf,
+                        int flags);
+void ppc_cpu_dump_statistics(CPUState *cpu, FILE *f,
+                             fprintf_function cpu_fprintf, int flags);
+int ppc_cpu_get_monitor_def(CPUState *cs, const char *name,
+                            uint64_t *pval);
+hwaddr ppc_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
+int ppc_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
+int ppc_cpu_gdb_read_register_apple(CPUState *cpu, uint8_t *buf, int reg);
+int ppc_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
+int ppc_cpu_gdb_write_register_apple(CPUState *cpu, uint8_t *buf, int reg);
+int ppc64_cpu_write_elf64_note(WriteCoreDumpFunction f, CPUState *cs,
+                               int cpuid, void *opaque);
+#ifndef CONFIG_USER_ONLY
+void ppc_cpu_do_system_reset(CPUState *cs);
+extern const struct VMStateDescription vmstate_ppc_cpu;
+#endif
 
 /*****************************************************************************/
 PowerPCCPU *cpu_ppc_init(const char *cpu_model);
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [Qemu-devel] [PULL v4 22/52] target-xtensa: make cpu-qom.h not target specific
  2016-05-19 14:43 [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Paolo Bonzini
  2016-05-19 14:43 ` [Qemu-devel] [PULL v4 16/52] target-ppc: make cpu-qom.h not target specific Paolo Bonzini
@ 2016-05-19 14:43 ` Paolo Bonzini
  2016-05-19 15:53 ` [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Peter Maydell
  2 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2016-05-19 14:43 UTC (permalink / raw)
  To: qemu-devel; +Cc: Max Filippov

Make XtensaCPU an opaque type within cpu-qom.h, and move all definitions
of private methods, as well as all type definitions that require knowledge
of the layout to cpu.h.  Conversely, move all definitions needed to
define a class to cpu-qom.h.  This helps making files independent of
NEED_CPU_H if they only need to pass around CPU pointers.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 target-xtensa/cpu-qom.h | 38 +++-----------------------------------
 target-xtensa/cpu.h     | 41 ++++++++++++++++++++++++++++++++++++++---
 2 files changed, 41 insertions(+), 38 deletions(-)

diff --git a/target-xtensa/cpu-qom.h b/target-xtensa/cpu-qom.h
index f5d9b9f..403bd95 100644
--- a/target-xtensa/cpu-qom.h
+++ b/target-xtensa/cpu-qom.h
@@ -40,6 +40,8 @@
 #define XTENSA_CPU_GET_CLASS(obj) \
     OBJECT_GET_CLASS(XtensaCPUClass, (obj), TYPE_XTENSA_CPU)
 
+typedef struct XtensaConfig XtensaConfig;
+
 /**
  * XtensaCPUClass:
  * @parent_realize: The parent class' realize handler.
@@ -59,40 +61,6 @@ typedef struct XtensaCPUClass {
     const XtensaConfig *config;
 } XtensaCPUClass;
 
-/**
- * XtensaCPU:
- * @env: #CPUXtensaState
- *
- * An Xtensa CPU.
- */
-typedef struct XtensaCPU {
-    /*< private >*/
-    CPUState parent_obj;
-    /*< public >*/
-
-    CPUXtensaState env;
-} XtensaCPU;
-
-static inline XtensaCPU *xtensa_env_get_cpu(const CPUXtensaState *env)
-{
-    return container_of(env, XtensaCPU, env);
-}
-
-#define ENV_GET_CPU(e) CPU(xtensa_env_get_cpu(e))
-
-#define ENV_OFFSET offsetof(XtensaCPU, env)
-
-void xtensa_cpu_do_interrupt(CPUState *cpu);
-bool xtensa_cpu_exec_interrupt(CPUState *cpu, int interrupt_request);
-void xtensa_cpu_do_unassigned_access(CPUState *cpu, hwaddr addr,
-                                     bool is_write, bool is_exec, int opaque,
-                                     unsigned size);
-void xtensa_cpu_dump_state(CPUState *cpu, FILE *f,
-                           fprintf_function cpu_fprintf, int flags);
-hwaddr xtensa_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
-int xtensa_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
-int xtensa_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
-void xtensa_cpu_do_unaligned_access(CPUState *cpu, vaddr addr,
-                                    int is_write, int is_user, uintptr_t retaddr);
+typedef struct XtensaCPU XtensaCPU;
 
 #endif
diff --git a/target-xtensa/cpu.h b/target-xtensa/cpu.h
index 7bfc9c8..e47cb6b 100644
--- a/target-xtensa/cpu.h
+++ b/target-xtensa/cpu.h
@@ -34,6 +34,7 @@
 #define CPUArchState struct CPUXtensaState
 
 #include "qemu-common.h"
+#include "cpu-qom.h"
 #include "exec/cpu-defs.h"
 #include "fpu/softfloat.h"
 
@@ -296,7 +297,7 @@ typedef struct XtensaGdbRegmap {
     XtensaGdbReg reg[1 + 16 + 64 + 256 + 256];
 } XtensaGdbRegmap;
 
-typedef struct XtensaConfig {
+struct XtensaConfig {
     const char *name;
     uint64_t options;
     XtensaGdbRegmap gdb_regmap;
@@ -329,7 +330,7 @@ typedef struct XtensaConfig {
 
     xtensa_tlb itlb;
     xtensa_tlb dtlb;
-} XtensaConfig;
+};
 
 typedef struct XtensaConfigList {
     const XtensaConfig *config;
@@ -379,7 +380,41 @@ typedef struct CPUXtensaState {
     CPU_COMMON
 } CPUXtensaState;
 
-#include "cpu-qom.h"
+/**
+ * XtensaCPU:
+ * @env: #CPUXtensaState
+ *
+ * An Xtensa CPU.
+ */
+struct XtensaCPU {
+    /*< private >*/
+    CPUState parent_obj;
+    /*< public >*/
+
+    CPUXtensaState env;
+};
+
+static inline XtensaCPU *xtensa_env_get_cpu(const CPUXtensaState *env)
+{
+    return container_of(env, XtensaCPU, env);
+}
+
+#define ENV_GET_CPU(e) CPU(xtensa_env_get_cpu(e))
+
+#define ENV_OFFSET offsetof(XtensaCPU, env)
+
+void xtensa_cpu_do_interrupt(CPUState *cpu);
+bool xtensa_cpu_exec_interrupt(CPUState *cpu, int interrupt_request);
+void xtensa_cpu_do_unassigned_access(CPUState *cpu, hwaddr addr,
+                                     bool is_write, bool is_exec, int opaque,
+                                     unsigned size);
+void xtensa_cpu_dump_state(CPUState *cpu, FILE *f,
+                           fprintf_function cpu_fprintf, int flags);
+hwaddr xtensa_cpu_get_phys_page_debug(CPUState *cpu, vaddr addr);
+int xtensa_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
+int xtensa_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
+void xtensa_cpu_do_unaligned_access(CPUState *cpu, vaddr addr,
+                                    int is_write, int is_user, uintptr_t retaddr);
 
 #define cpu_exec cpu_xtensa_exec
 #define cpu_signal_handler cpu_xtensa_signal_handler
-- 
2.5.5

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups
  2016-05-19 14:43 [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Paolo Bonzini
  2016-05-19 14:43 ` [Qemu-devel] [PULL v4 16/52] target-ppc: make cpu-qom.h not target specific Paolo Bonzini
  2016-05-19 14:43 ` [Qemu-devel] [PULL v4 22/52] target-xtensa: " Paolo Bonzini
@ 2016-05-19 15:53 ` Peter Maydell
  2016-05-19 17:54   ` Peter Maydell
  2 siblings, 1 reply; 6+ messages in thread
From: Peter Maydell @ 2016-05-19 15:53 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On 19 May 2016 at 15:43, Paolo Bonzini <pbonzini@redhat.com> wrote:
> The following changes since commit 8ec4fe0a4bed4fa27e6f28a746bcf77b27cd05a3:
>
>   Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2016-05-18' into staging (2016-05-19 09:27:28 +0100)
>
> are available in the git repository at:
>
>   git://github.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to df43d49cb8708b9c88a20afe0d1a3089b550a5b8:
>
>   hw: clean up hw/hw.h includes (2016-05-19 16:42:30 +0200)
>
> ----------------------------------------------------------------
> NEED_CPU_H cleanups, big enough to deserve their own pull request.
>
> ----------------------------------------------------------------

Applied, thanks.

-- PMM

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups
  2016-05-19 15:53 ` [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Peter Maydell
@ 2016-05-19 17:54   ` Peter Maydell
  2016-05-19 18:35     ` Paolo Bonzini
  0 siblings, 1 reply; 6+ messages in thread
From: Peter Maydell @ 2016-05-19 17:54 UTC (permalink / raw)
  To: Paolo Bonzini; +Cc: QEMU Developers

On 19 May 2016 at 16:53, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 19 May 2016 at 15:43, Paolo Bonzini <pbonzini@redhat.com> wrote:
>> The following changes since commit 8ec4fe0a4bed4fa27e6f28a746bcf77b27cd05a3:
>>
>>   Merge remote-tracking branch 'remotes/mjt/tags/pull-trivial-patches-2016-05-18' into staging (2016-05-19 09:27:28 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/bonzini/qemu.git tags/for-upstream
>>
>> for you to fetch changes up to df43d49cb8708b9c88a20afe0d1a3089b550a5b8:
>>
>>   hw: clean up hw/hw.h includes (2016-05-19 16:42:30 +0200)
>>
>> ----------------------------------------------------------------
>> NEED_CPU_H cleanups, big enough to deserve their own pull request.
>>
>> ----------------------------------------------------------------
>
> Applied, thanks.

...there seem to be some travis build failures:
  https://travis-ci.org/qemu/qemu/builds/131457562

TCI seems to be broken, as is hw/timer/aspeed_timer.c. The latter
is probably just a missing #include "qemu/log.h".

Would you mind having a look?

thanks
-- PMM

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups
  2016-05-19 17:54   ` Peter Maydell
@ 2016-05-19 18:35     ` Paolo Bonzini
  0 siblings, 0 replies; 6+ messages in thread
From: Paolo Bonzini @ 2016-05-19 18:35 UTC (permalink / raw)
  To: Peter Maydell; +Cc: QEMU Developers



On 19/05/2016 19:54, Peter Maydell wrote:
> ...there seem to be some travis build failures:
>   https://travis-ci.org/qemu/qemu/builds/131457562
> 
> TCI seems to be broken

Missing cpu.h includes (though for disas/tci.c, hopefully one can stop
including exec/exec-all.h instead).

> as is hw/timer/aspeed_timer.c. The latter
> is probably just a missing #include "qemu/log.h".

Yes, and it only shows if trace.h doesn't include it.  There are
probably others that are similarly broken.

I'll look at it tomorrow morning.

Paolo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-05-19 18:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-19 14:43 [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Paolo Bonzini
2016-05-19 14:43 ` [Qemu-devel] [PULL v4 16/52] target-ppc: make cpu-qom.h not target specific Paolo Bonzini
2016-05-19 14:43 ` [Qemu-devel] [PULL v4 22/52] target-xtensa: " Paolo Bonzini
2016-05-19 15:53 ` [Qemu-devel] [PULL v4 00/52] NEED_CPU_H cleanups Peter Maydell
2016-05-19 17:54   ` Peter Maydell
2016-05-19 18:35     ` Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).