qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH RFC v5 0/3] Baby steps towards saner headers


From: Markus Armbruster
Subject: [Qemu-devel] [PATCH RFC v5 0/3] Baby steps towards saner headers
Date: Thu, 11 Jul 2019 14:28:24 +0200

Back in 2016, we discussed rules for headers, and these were
generally liked:

1. Have a carefully curated header that's included everywhere first.  We
   got that already thanks to Peter: osdep.h.

2. Headers should normally include everything they need beyond osdep.h.
   If exceptions are needed for some reason, they must be documented in
   the header.  If all that's needed from a header is typedefs, put
   those into qemu/typedefs.h instead of including the header.

3. Cyclic inclusion is forbidden.

Message-ID: <address@hidden>
http://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg03345.html

Trouble is we're not exactly close to obeying 2.  This series
demonstrates a possible path towards obeying it: enforce it in "make
check", except for known-bad headers.  We can then whittle down
known-bad headers step by step in future patches.

PATCH 1 adds the tests, but only for include/.  764 headers, 179
known-bad.

PATCH 2 cleans up include/ somewhat.  The work remaining should be
fairly obvious now.  I plan to spin out my cleanups as a separate
non-RFC patch submission.

PATCH 3 makes the tests more thorough in a simple and stupid way.
Massive overkill, painfully slow.  I'm open for better ideas.

Previous iterations had additional patches to test all headers, not
just include/.  I decided to focus in include/ and shelve them for
now.

Testing:

I tested various configurations on an x86 host (everything enabled,
everything disabled, KVM only (TCG disabled), user only, MinGW).  I
also tested lightly on ARM and PPC hosts.  Exhaustive testing is not
practical.  I can't exclude the possibility that the new test fails in
configurations I didn't test.

Known issues:

(1) Many headers are (meant to be) only included into certain
    contexts.  In two places, the code makes its intent explicit:

    * include/exec/cpu-defs.h #errors out when included into
      target-independent code (#ifndef NEED_CPU_H)

    * include/hw/hw.h #errors out when included into user emulation
      code (#ifdef CONFIG_USER_ONLY)

    I manually marked headers including them, so that the test can
    treat them specially.  Better ideas welcome.

    Such #erroring isn't done for other contexts (perhaps it should
    be).  Inclusion into the wrong context fails in various ways
    instead.  The resulting test failures are marked FIXME.  The ones
    that fail by accident (if any) should be fixed.  The ones that
    aren't meant to succeed need to be treated specially by the test.

(2) A few headers are only included into code that's compiled with
    special CFLAGS.  The test doesn't know, and the resulting test
    failures are marked FIXME.  Known instances: include/ui/gtk.h and
    GTK_CFLAGS, include/ui/sdl2.h and SDL_CFLAGS.

Please have a look and tell me what you think.

v5:
* Old PATCH 1-4: Merged in commit 234e256511e
* Old PATCH 6-7: Shelved for now
* PATCH 1:
  - Rebased (uff)
  - Suppress debug info to save disk space
  - Fix .SECONDARY for $(check-bad-target-header-tests)
  - Minor tweaks to make PATCH 3 simpler
  - Add include/hw/xen/interface/ to excluded-headers
  - Rewrite the Make code to find magic comments
  - Test with -Wunused-function to cope with static inline functions
* PATCH 2-3: New

v4:
* PATCH 1-4: New.
* PATCH 5:
  - Implement testing of target-dependent headers
  - Replace crude "expected to fail with WIN32" by a set of "expected
    to fail without FOO".
* Old PATCH 3-5: Dropped.  These were examples for whittling down
  known-bad headers.

v3:
* Old PATH 1 moved to another series
* PATCH 1:
  - Skip the test unless $(SRC_PATH)/.git exists
  - Exclude third-party headers [Peter]
  - Exclude Coccinelle header
  - Fix egrep vs. fgrep typos
  - Mark and exclude headers that die due to poison.h, because testing
    them isn't implemented, yet
  - tests/header-test-template.c not omitted (d'oh)
* PATCH 3: Replaced
* PATCH 5: New

v2:
* PATCH 2:
  - Use fixed-format FIXME comments in headers instead of a blacklist
    in the makefile [Paolo]
  - Make target check-source [Peter]
  - Special-case CONFIG_WIN32
* PATCH 3:
  - replaced by an unrelated one that makes actual sense (I hope)

Markus Armbruster (3):
  tests: New make target check-source
  include: Make headers more self-contained
  tests: Check target-independent headers for each target, too

 Makefile                                  |   4 +-
 Makefile.target                           |  20 ++++
 include/block/raw-aio.h                   |   2 +
 include/block/write-threshold.h           |   2 +
 include/chardev/char-win.h                |   3 +
 include/chardev/spice.h                   |   2 +
 include/disas/disas.h                     |   1 +
 include/exec/cpu-all.h                    |   4 +
 include/exec/cpu-defs.h                   |   3 +
 include/exec/cpu_ldst.h                   |   4 +
 include/exec/cpu_ldst_template.h          |   3 +
 include/exec/cpu_ldst_useronly_template.h |   3 +
 include/exec/cputlb.h                     |   3 +
 include/exec/exec-all.h                   |   3 +
 include/exec/gen-icount.h                 |   2 +
 include/exec/helper-gen.h                 |   2 +
 include/exec/helper-proto.h               |   2 +
 include/exec/helper-tcg.h                 |   2 +
 include/exec/ioport.h                     |   4 +
 include/exec/memory-internal.h            |   4 +
 include/exec/memory_ldst.inc.h            |   2 +
 include/exec/memory_ldst_cached.inc.h     |   2 +
 include/exec/memory_ldst_phys.inc.h       |   2 +
 include/exec/ram_addr.h                   |   3 +
 include/exec/softmmu-semi.h               |   4 +
 include/exec/tb-hash.h                    |   4 +
 include/exec/tb-lookup.h                  |   3 +
 include/exec/translator.h                 |   2 +
 include/exec/user/abitypes.h              |   2 +
 include/exec/user/thunk.h                 |   4 +
 include/fpu/softfloat-macros.h            |   4 +
 include/fpu/softfloat.h                   |   2 +
 include/hw/acpi/acpi.h                    |   2 +
 include/hw/acpi/acpi_dev_interface.h      |   2 +
 include/hw/acpi/cpu.h                     |   3 +
 include/hw/acpi/cpu_hotplug.h             |   2 +
 include/hw/acpi/ich9.h                    |   2 +
 include/hw/acpi/memory_hotplug.h          |   2 +
 include/hw/acpi/pci.h                     |   3 +
 include/hw/acpi/pcihp.h                   |   2 +
 include/hw/acpi/tco.h                     |   5 +
 include/hw/acpi/utils.h                   |   2 +
 include/hw/acpi/vmgenid.h                 |   2 +
 include/hw/adc/stm32f2xx_adc.h            |   4 +
 include/hw/arm/allwinner-a10.h            |   5 +
 include/hw/arm/armsse.h                   |   4 +
 include/hw/arm/armv7m.h                   |   4 +
 include/hw/arm/aspeed.h                   |   3 +
 include/hw/arm/aspeed_soc.h               |   5 +
 include/hw/arm/bcm2835_peripherals.h      |   2 +
 include/hw/arm/bcm2836.h                  |   5 +
 include/hw/arm/digic.h                    |   4 +
 include/hw/arm/exynos4210.h               |   5 +-
 include/hw/arm/fsl-imx25.h                |   5 +
 include/hw/arm/fsl-imx31.h                |   5 +
 include/hw/arm/fsl-imx6.h                 |   4 +
 include/hw/arm/fsl-imx6ul.h               |   4 +
 include/hw/arm/fsl-imx7.h                 |   4 +
 include/hw/arm/msf2-soc.h                 |   4 +
 include/hw/arm/nrf51_soc.h                |   4 +
 include/hw/arm/omap.h                     |   2 +
 include/hw/arm/pxa.h                      |   2 +
 include/hw/arm/sharpsl.h                  |   3 +
 include/hw/arm/smmu-common.h              |   3 +-
 include/hw/arm/smmuv3.h                   |   2 +
 include/hw/arm/soc_dma.h                  |   2 +
 include/hw/arm/stm32f205_soc.h            |   4 +
 include/hw/arm/virt.h                     |   2 +
 include/hw/arm/xlnx-versal.h              |   2 +
 include/hw/arm/xlnx-zynqmp.h              |   5 +
 include/hw/audio/pcspk.h                  |   2 +
 include/hw/audio/wm8750.h                 |   3 +
 include/hw/block/fdc.h                    |   2 +
 include/hw/block/flash.h                  |   3 +
 include/hw/boards.h                       |   2 +
 include/hw/char/bcm2835_aux.h             |   2 +
 include/hw/char/cadence_uart.h            |   2 +
 include/hw/char/cmsdk-apb-uart.h          |   2 +
 include/hw/char/digic-uart.h              |   3 +-
 include/hw/char/escc.h                    |   3 +
 include/hw/char/imx_serial.h              |   2 +
 include/hw/char/lm32_juart.h              |   2 +
 include/hw/char/nrf51_uart.h              |   2 +
 include/hw/char/parallel.h                |   2 +
 include/hw/char/pl011.h                   |   2 +
 include/hw/char/serial.h                  |   2 +
 include/hw/char/stm32f2xx_usart.h         |   2 +
 include/hw/char/xilinx_uartlite.h         |   4 +
 include/hw/core/generic-loader.h          |   1 +
 include/hw/core/split-irq.h               |   3 +
 include/hw/cpu/a15mpcore.h                |   3 +
 include/hw/cpu/a9mpcore.h                 |   3 +
 include/hw/cpu/arm11mpcore.h              |   2 +
 include/hw/cpu/cluster.h                  |   3 +
 include/hw/cpu/core.h                     |   3 +
 include/hw/cris/etraxfs.h                 |   3 +
 include/hw/cris/etraxfs_dma.h             |   3 +
 include/hw/display/bcm2835_fb.h           |   2 +
 include/hw/display/edid.h                 |   2 +
 include/hw/display/i2c-ddc.h              |   3 +
 include/hw/display/milkymist_tmu2.h       |   3 +-
 include/hw/display/vga.h                  |   3 +
 include/hw/display/xlnx_dp.h              |   2 +
 include/hw/dma/bcm2835_dma.h              |   2 +
 include/hw/dma/i8257.h                    |   2 +
 include/hw/dma/pl080.h                    |   2 +
 include/hw/dma/xlnx-zdma.h                |   2 +
 include/hw/dma/xlnx-zynq-devcfg.h         |   2 +
 include/hw/dma/xlnx_dpdma.h               |   2 +
 include/hw/elf_ops.h                      |   2 +
 include/hw/empty_slot.h                   |   2 +
 include/hw/gpio/bcm2835_gpio.h            |   3 +
 include/hw/gpio/imx_gpio.h                |   2 +
 include/hw/gpio/nrf51_gpio.h              |   4 +-
 include/hw/hw.h                           |   2 +
 include/hw/hyperv/hyperv.h                |   2 +
 include/hw/i2c/aspeed_i2c.h               |   4 +
 include/hw/i2c/bitbang_i2c.h              |   2 +
 include/hw/i2c/i2c.h                      |   2 +
 include/hw/i2c/imx_i2c.h                  |   3 +-
 include/hw/i2c/microbit_i2c.h             |   2 +
 include/hw/i2c/pm_smbus.h                 |   2 +
 include/hw/i2c/ppc4xx_i2c.h               |   2 +
 include/hw/i2c/smbus_eeprom.h             |   2 +
 include/hw/i2c/smbus_master.h             |   2 +
 include/hw/i2c/smbus_slave.h              |   2 +
 include/hw/i386/apic_internal.h           |   5 +
 include/hw/i386/ich9.h                    |   2 +
 include/hw/i386/intel_iommu.h             |   2 +
 include/hw/i386/ioapic_internal.h         |   3 +
 include/hw/i386/pc.h                      |   2 +
 include/hw/i386/x86-iommu.h               |   2 +
 include/hw/ide.h                          |   2 +
 include/hw/ide/ahci.h                     |   3 +-
 include/hw/ide/internal.h                 |   2 +
 include/hw/ide/pci.h                      |   2 +
 include/hw/input/adb.h                    |   2 +
 include/hw/input/i8042.h                  |   3 +
 include/hw/input/tsc2xxx.h                |   2 +
 include/hw/intc/allwinner-a10-pic.h       |   4 +
 include/hw/intc/arm_gic.h                 |   2 +
 include/hw/intc/arm_gic_common.h          |   2 +
 include/hw/intc/arm_gicv3.h               |   2 +
 include/hw/intc/arm_gicv3_common.h        |   2 +
 include/hw/intc/arm_gicv3_its_common.h    |   2 +
 include/hw/intc/armv7m_nvic.h             |   4 +
 include/hw/intc/aspeed_vic.h              |   3 +
 include/hw/intc/bcm2835_ic.h              |   2 +
 include/hw/intc/bcm2836_control.h         |   2 +
 include/hw/intc/heathrow_pic.h            |   4 +
 include/hw/intc/imx_avic.h                |   3 +
 include/hw/intc/imx_gpcv2.h               |   2 +
 include/hw/intc/mips_gic.h                |   5 +
 include/hw/intc/realview_gic.h            |   2 +
 include/hw/intc/xlnx-pmu-iomod-intc.h     |   2 +
 include/hw/intc/xlnx-zynqmp-ipi.h         |   2 +
 include/hw/ipack/ipack.h                  |   2 +
 include/hw/ipmi/ipmi.h                    |   2 +
 include/hw/isa/apm.h                      |   2 +
 include/hw/isa/i8259_internal.h           |   2 +
 include/hw/isa/isa.h                      |   2 +
 include/hw/isa/pc87312.h                  |   3 +
 include/hw/isa/superio.h                  |   3 +
 include/hw/isa/vt82c686.h                 |   2 +
 include/hw/kvm/clock.h                    |   2 +
 include/hw/loader.h                       |   2 +
 include/hw/mem/memory-device.h            |   2 +
 include/hw/mem/nvdimm.h                   |   2 +
 include/hw/mem/pc-dimm.h                  |   3 +-
 include/hw/mips/bios.h                    |   2 +
 include/hw/mips/cps.h                     |   5 +
 include/hw/mips/cpudevs.h                 |   2 +
 include/hw/misc/a9scu.h                   |   3 +
 include/hw/misc/arm11scu.h                |   2 +
 include/hw/misc/armsse-cpuid.h            |   2 +
 include/hw/misc/armsse-mhu.h              |   2 +
 include/hw/misc/aspeed_scu.h              |   3 +
 include/hw/misc/aspeed_sdmc.h             |   3 +
 include/hw/misc/aspeed_xdma.h             |   2 +
 include/hw/misc/auxbus.h                  |   3 +-
 include/hw/misc/bcm2835_mbox.h            |   2 +
 include/hw/misc/bcm2835_property.h        |   2 +
 include/hw/misc/bcm2835_rng.h             |   2 +
 include/hw/misc/imx25_ccm.h               |   2 +
 include/hw/misc/imx2_wdt.h                |   2 +
 include/hw/misc/imx31_ccm.h               |   2 +
 include/hw/misc/imx6_ccm.h                |   2 +
 include/hw/misc/imx6_src.h                |   2 +
 include/hw/misc/imx6ul_ccm.h              |   2 +
 include/hw/misc/imx7_ccm.h                |   2 +
 include/hw/misc/imx7_gpr.h                |   2 +
 include/hw/misc/imx7_snvs.h               |   2 +
 include/hw/misc/imx_ccm.h                 |   2 +
 include/hw/misc/iotkit-secctl.h           |   2 +
 include/hw/misc/iotkit-sysctl.h           |   2 +
 include/hw/misc/iotkit-sysinfo.h          |   2 +
 include/hw/misc/macio/cuda.h              |   4 +
 include/hw/misc/macio/gpio.h              |   5 +
 include/hw/misc/macio/macio.h             |   4 +
 include/hw/misc/macio/pmu.h               |   5 +
 include/hw/misc/mips_cmgcr.h              |   5 +-
 include/hw/misc/mips_cpc.h                |   4 +
 include/hw/misc/mips_itu.h                |   2 +
 include/hw/misc/mos6522.h                 |   2 +
 include/hw/misc/mps2-fpgaio.h             |   2 +
 include/hw/misc/mps2-scc.h                |   2 +
 include/hw/misc/msf2-sysreg.h             |   2 +
 include/hw/misc/nrf51_rng.h               |   3 +-
 include/hw/misc/pca9552.h                 |   3 +
 include/hw/misc/pvpanic.h                 |   3 +
 include/hw/misc/stm32f2xx_syscfg.h        |   2 +
 include/hw/misc/tz-mpc.h                  |   2 +
 include/hw/misc/tz-msc.h                  |   2 +
 include/hw/misc/tz-ppc.h                  |   2 +
 include/hw/misc/unimp.h                   |   2 +
 include/hw/misc/vmcoreinfo.h              |   4 +-
 include/hw/misc/zynq-xadc.h               |   2 +
 include/hw/net/allwinner_emac.h           |   4 +-
 include/hw/net/cadence_gem.h              |   2 +
 include/hw/net/ftgmac100.h                |   2 +
 include/hw/net/imx_fec.h                  |   2 +
 include/hw/net/lance.h                    |   3 +
 include/hw/net/ne2000-isa.h               |   2 +
 include/hw/nvram/chrp_nvram.h             |   2 +
 include/hw/nvram/fw_cfg.h                 |   2 +
 include/hw/nvram/nrf51_nvm.h              |   4 +-
 include/hw/or-irq.h                       |   2 +
 include/hw/pci-bridge/simba.h             |   2 +
 include/hw/pci-host/designware.h          |   2 +
 include/hw/pci-host/gpex.h                |   2 +
 include/hw/pci-host/pam.h                 |   2 +
 include/hw/pci-host/q35.h                 |   2 +
 include/hw/pci-host/sabre.h               |   4 +
 include/hw/pci-host/spapr.h               |   3 +
 include/hw/pci-host/uninorth.h            |   4 +-
 include/hw/pci-host/xilinx-pcie.h         |   2 +
 include/hw/pci/msi.h                      |   2 +
 include/hw/pci/msix.h                     |   2 +
 include/hw/pci/pci.h                      |   2 +
 include/hw/pci/pci_bridge.h               |   3 +-
 include/hw/pci/pci_bus.h                  |   2 +
 include/hw/pci/pci_host.h                 |   2 +
 include/hw/pci/pcie.h                     |   2 +
 include/hw/pci/pcie_aer.h                 |   3 +
 include/hw/pci/pcie_host.h                |   2 +
 include/hw/pci/pcie_port.h                |   2 +
 include/hw/pci/shpc.h                     |   2 +
 include/hw/pcmcia.h                       |   2 +
 include/hw/platform-bus.h                 |   2 +
 include/hw/ppc/fdt.h                      |   2 +
 include/hw/ppc/mac_dbdma.h                |   2 +
 include/hw/ppc/openpic.h                  |   2 +
 include/hw/ppc/pnv.h                      |   3 +
 include/hw/ppc/pnv_core.h                 |   4 +
 include/hw/ppc/pnv_lpc.h                  |   2 +
 include/hw/ppc/pnv_occ.h                  |   2 +
 include/hw/ppc/pnv_psi.h                  |   2 +
 include/hw/ppc/pnv_xive.h                 |   2 +
 include/hw/ppc/pnv_xscom.h                |   2 +
 include/hw/ppc/ppc.h                      |   2 +
 include/hw/ppc/ppc4xx.h                   |   7 ++
 include/hw/ppc/spapr.h                    |   3 +
 include/hw/ppc/spapr_cpu_core.h           |   4 +
 include/hw/ppc/spapr_drc.h                |   2 +
 include/hw/ppc/spapr_irq.h                |   5 +
 include/hw/ppc/spapr_ovec.h               |   2 +
 include/hw/ppc/spapr_vio.h                |  11 +-
 include/hw/ppc/spapr_xive.h               |   5 +
 include/hw/ppc/xics.h                     |   3 +-
 include/hw/ppc/xics_spapr.h               |   3 +
 include/hw/ppc/xive.h                     |   3 +-
 include/hw/ppc/xive_regs.h                |   3 +
 include/hw/qdev.h                         |   2 +
 include/hw/register.h                     |   2 +
 include/hw/riscv/boot.h                   |   4 +
 include/hw/riscv/riscv_hart.h             |   6 ++
 include/hw/riscv/riscv_htif.h             |   3 +
 include/hw/riscv/sifive_clint.h           |   4 +
 include/hw/riscv/sifive_e.h               |   4 +
 include/hw/riscv/sifive_gpio.h            |   3 +
 include/hw/riscv/sifive_plic.h            |   4 +-
 include/hw/riscv/sifive_prci.h            |   4 +
 include/hw/riscv/sifive_test.h            |   4 +
 include/hw/riscv/sifive_u.h               |   4 +
 include/hw/riscv/sifive_uart.h            |   5 +
 include/hw/riscv/spike.h                  |   6 ++
 include/hw/riscv/virt.h                   |   6 ++
 include/hw/s390x/3270-ccw.h               |   3 +
 include/hw/s390x/ap-device.h              |   3 +
 include/hw/s390x/css-bridge.h             |   5 +-
 include/hw/s390x/css.h                    |   4 +
 include/hw/s390x/event-facility.h         |   3 +-
 include/hw/s390x/s390-ccw.h               |   3 +
 include/hw/s390x/s390-virtio-ccw.h        |   3 +
 include/hw/s390x/s390_flic.h              |   2 +
 include/hw/s390x/sclp.h                   |   3 +-
 include/hw/s390x/storage-attributes.h     |   3 +
 include/hw/s390x/storage-keys.h           |   2 +
 include/hw/s390x/tod.h                    |   4 +-
 include/hw/s390x/vfio-ccw.h               |   3 +
 include/hw/scsi/esp.h                     |   2 +
 include/hw/scsi/scsi.h                    |   2 +
 include/hw/sd/bcm2835_sdhost.h            |   2 +
 include/hw/sd/sd.h                        |   2 +
 include/hw/sd/sdhci.h                     |   2 +
 include/hw/semihosting/console.h          |   4 +
 include/hw/sh4/sh.h                       |   2 +
 include/hw/sh4/sh_intc.h                  |   3 +
 include/hw/sparc/grlib.h                  |   2 +
 include/hw/sparc/sparc32_dma.h            |   2 +
 include/hw/sparc/sparc64.h                |   4 +
 include/hw/sparc/sun4m_iommu.h            |   2 +
 include/hw/sparc/sun4u_iommu.h            |   2 +
 include/hw/ssi/aspeed_smc.h               |   3 +
 include/hw/ssi/imx_spi.h                  |   2 +
 include/hw/ssi/mss-spi.h                  |   2 +
 include/hw/ssi/pl022.h                    |   2 +
 include/hw/ssi/ssi.h                      |   2 +
 include/hw/ssi/stm32f2xx_spi.h            |   2 +
 include/hw/ssi/xilinx_spips.h             |   3 +
 include/hw/sysbus.h                       |   2 +
 include/hw/timer/a9gtimer.h               |   2 +
 include/hw/timer/allwinner-a10-pit.h      |   3 +
 include/hw/timer/arm_mptimer.h            |   3 +
 include/hw/timer/armv7m_systick.h         |   2 +
 include/hw/timer/aspeed_rtc.h             |   3 +
 include/hw/timer/aspeed_timer.h           |   3 +
 include/hw/timer/cmsdk-apb-dualtimer.h    |   2 +
 include/hw/timer/cmsdk-apb-timer.h        |   2 +
 include/hw/timer/digic-timer.h            |   3 +-
 include/hw/timer/i8254.h                  |   2 +
 include/hw/timer/i8254_internal.h         |   3 +
 include/hw/timer/imx_epit.h               |   2 +
 include/hw/timer/imx_gpt.h                |   2 +
 include/hw/timer/m48t59.h                 |   2 +
 include/hw/timer/mc146818rtc.h            |   2 +
 include/hw/timer/mc146818rtc_regs.h       |   2 +
 include/hw/timer/mss-timer.h              |   2 +
 include/hw/timer/nrf51_timer.h            |   3 +
 include/hw/timer/pl031.h                  |   2 +
 include/hw/timer/stm32f2xx_timer.h        |   2 +
 include/hw/timer/sun4v-rtc.h              |   7 ++
 include/hw/timer/xlnx-zynqmp-rtc.h        |   3 +
 include/hw/usb.h                          |   2 +
 include/hw/usb/chipidea.h                 |   2 +
 include/hw/vfio/vfio-amd-xgbe.h           |   2 +
 include/hw/vfio/vfio-calxeda-xgmac.h      |   2 +
 include/hw/vfio/vfio-common.h             |   2 +
 include/hw/vfio/vfio-platform.h           |   2 +
 include/hw/virtio/vhost-backend.h         |   3 +-
 include/hw/virtio/vhost-scsi-common.h     |   3 +-
 include/hw/virtio/vhost-scsi.h            |   3 +-
 include/hw/virtio/vhost-user-blk.h        |   3 +-
 include/hw/virtio/vhost-user-scsi.h       |   3 +-
 include/hw/virtio/vhost-user.h            |   2 +
 include/hw/virtio/vhost-vsock.h           |   2 +
 include/hw/virtio/vhost.h                 |   2 +
 include/hw/virtio/virtio-access.h         |   4 +
 include/hw/virtio/virtio-balloon.h        |   3 +-
 include/hw/virtio/virtio-blk.h            |   3 +-
 include/hw/virtio/virtio-bus.h            |   3 +-
 include/hw/virtio/virtio-crypto.h         |   2 +
 include/hw/virtio/virtio-gpu-bswap.h      |   1 +
 include/hw/virtio/virtio-gpu-pci.h        |   2 +
 include/hw/virtio/virtio-gpu-pixman.h     |   2 +
 include/hw/virtio/virtio-gpu.h            |   2 +
 include/hw/virtio/virtio-input.h          |   2 +
 include/hw/virtio/virtio-net.h            |   3 +-
 include/hw/virtio/virtio-pmem.h           |   2 +
 include/hw/virtio/virtio-rng.h            |   3 +
 include/hw/virtio/virtio-scsi.h           |   3 +-
 include/hw/virtio/virtio-serial.h         |   3 +-
 include/hw/virtio/virtio.h                |   3 +-
 include/hw/watchdog/cmsdk-apb-watchdog.h  |   2 +
 include/hw/watchdog/wdt_aspeed.h          |   3 +
 include/hw/watchdog/wdt_diag288.h         |   2 +
 include/hw/xen/xen-backend.h              |   3 +
 include/hw/xen/xen-block.h                |   3 +
 include/hw/xen/xen-bus-helper.h           |   3 +
 include/hw/xen/xen-bus.h                  |   3 +
 include/hw/xen/xen-legacy-backend.h       |   3 +
 include/hw/xen/xen.h                      |   2 +
 include/hw/xen/xen_common.h               |   3 +
 include/hw/xen/xen_pvdev.h                |   3 +
 include/libdecnumber/decNumberLocal.h     |   1 +
 include/migration/cpu.h                   |   5 +
 include/monitor/hmp-target.h              |   4 +
 include/net/vhost_net.h                   |   2 +
 include/qemu/atomic128.h                  |   2 +
 include/qemu/cpuid.h                      |   2 +
 include/qemu/futex.h                      |   2 +
 include/qemu/iova-tree.h                  |   3 +
 include/qemu/ratelimit.h                  |   2 +
 include/qemu/thread-win32.h               |   4 +-
 include/qemu/xattr.h                      |   3 +
 include/sysemu/balloon.h                  |   4 +-
 include/sysemu/cryptodev-vhost-user.h     |   6 +-
 include/sysemu/cryptodev-vhost.h          |   4 +-
 include/sysemu/dma.h                      |   2 +
 include/sysemu/dump.h                     |   3 +
 include/sysemu/hostmem.h                  |   2 +
 include/sysemu/hvf.h                      |   3 +
 include/sysemu/iothread.h                 |   1 +
 include/sysemu/kvm_int.h                  |   5 +-
 include/sysemu/memory_mapping.h           |   5 +
 include/sysemu/numa.h                     |   2 +
 include/sysemu/os-posix.h                 |   2 +
 include/sysemu/os-win32.h                 |   2 +
 include/sysemu/vhost-user-backend.h       |   3 +
 include/sysemu/xen-mapcache.h             |   5 +-
 include/trace-tcg.h                       |   2 +
 include/ui/console.h                      |   2 +
 include/ui/egl-context.h                  |   3 +
 include/ui/egl-helpers.h                  |   6 ++
 include/ui/gtk.h                          |   2 +
 include/ui/input.h                        |   1 +
 include/ui/pixel_ops.h                    |   5 +
 include/ui/qemu-pixman.h                  |   2 +
 include/ui/sdl2.h                         |   2 +
 include/ui/shader.h                       |   2 +
 include/ui/spice-display.h                |   4 +
 target/hppa/cpu.h                         |   2 +-
 tests/Makefile.include                    |  33 +++++-
 tests/check-headers.mak                   | 116 ++++++++++++++++++++++
 tests/header-test-template.c              |  23 +++++
 425 files changed, 1292 insertions(+), 50 deletions(-)
 create mode 100644 tests/check-headers.mak
 create mode 100644 tests/header-test-template.c

-- 
2.21.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]