[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
- [Qemu-devel] [PATCH RFC v5 0/3] Baby steps towards saner headers,
Markus Armbruster <=
- [Qemu-devel] [PATCH RFC v5 2/3] include: Make headers more self-contained, Markus Armbruster, 2019/07/11
- [Qemu-devel] [PATCH RFC v5 1/3] tests: New make target check-source, Markus Armbruster, 2019/07/11
- [Qemu-devel] [PATCH RFC v5 3/3] tests: Check target-independent headers for each target, too, Markus Armbruster, 2019/07/11
- Re: [Qemu-devel] [PATCH RFC v5 0/3] Baby steps towards saner headers, no-reply, 2019/07/11
- Re: [Qemu-devel] [PATCH RFC v5 0/3] Baby steps towards saner headers, no-reply, 2019/07/11