We have a bunch of headers without multiple inclusion guards. Some are clearly intentional, some look accidental. Too many for me to find out by examining each of them, so I'm asking their maintainers.
Why do I ask? I'd like to mark the intentional ones and fix the accidental ones, so they don't flunk "make check-headers" from "[RFC v4 0/7] Baby steps towards saner headers" just because they lack multiple inclusion guards. Just in case: what's a multiple inclusion guard? It's #ifndef UNIQUE_GUARD_SYMBOL_H #define UNIQUE_GUARD_SYMBOL_H ... #endif with nothing but comments outside the conditional, so that the header can safely be included more than once. I append the alphabetical list of headers without multiple inclusion guards (as reported by scripts/clean-header-guards -nv), followed by the same list sorted into maintainer buckets. If you're cc'ed, please find your bucket(s), and tell me which headers intentionally lack guards. = Headers without inclusion guards = accel/tcg/atomic_template.h accel/tcg/tcg-runtime.h audio/audio_template.h audio/dsound_template.h audio/mixeng_template.h audio/rate_template.h bsd-user/bsd-mman.h bsd-user/errno_defs.h bsd-user/freebsd/syscall_nr.h bsd-user/netbsd/syscall_nr.h bsd-user/openbsd/syscall_nr.h bsd-user/syscall_defs.h crypto/ivgen-essiv.h crypto/ivgen-plain.h crypto/ivgen-plain64.h fpu/softfloat-specialize.h hw/9pfs/xen-9pfs.h hw/audio/hda-codec-common.h hw/display/cirrus_vga_rop.h hw/display/cirrus_vga_rop2.h hw/display/milkymist-vgafb_template.h hw/display/omap_lcd_template.h hw/display/pl110_template.h hw/display/pxa2xx_template.h hw/display/sm501_template.h hw/display/tc6393xb_template.h hw/display/vga-helpers.h hw/hppa/hppa_hardware.h hw/input/adb-internal.h hw/net/e1000e_core.h hw/net/e1000x_common.h hw/net/vmxnet3_defs.h hw/usb/hcd-xhci.h hw/usb/quirks-ftdi-ids.h hw/usb/quirks-pl2303-ids.h hw/usb/quirks.h include/exec/cpu_ldst_template.h include/exec/cpu_ldst_useronly_template.h include/exec/memory_ldst.inc.h include/exec/memory_ldst_cached.inc.h include/exec/memory_ldst_phys.inc.h include/fpu/softfloat-macros.h include/hw/arm/allwinner-a10.h include/hw/arm/omap.h include/hw/arm/raspi_platform.h include/hw/arm/xlnx-zynqmp.h include/hw/char/cadence_uart.h include/hw/display/xlnx_dp.h include/hw/dma/xlnx-zynq-devcfg.h include/hw/elf_ops.h include/hw/kvm/clock.h include/hw/m68k/mcf_fec.h include/hw/mips/bios.h include/hw/net/cadence_gem.h include/hw/pci-bridge/simba.h include/hw/pci/pci_regs.h include/hw/qdev-dma.h include/hw/sparc/sparc64.h include/hw/timer/sun4v-rtc.h include/hw/timer/xlnx-zynqmp-rtc.h include/hw/xen/io/ring.h include/libdecnumber/dconfig.h include/libdecnumber/decDPD.h include/libdecnumber/dpd/decimal128Local.h include/ui/pixel_ops.h include/ui/spice-display.h linux-user/aarch64/sockbits.h linux-user/aarch64/syscall_nr.h linux-user/aarch64/termbits.h linux-user/alpha/syscall_nr.h linux-user/alpha/termbits.h linux-user/arm/sockbits.h linux-user/arm/syscall_nr.h linux-user/arm/termbits.h linux-user/cris/sockbits.h linux-user/cris/syscall_nr.h linux-user/cris/termbits.h linux-user/errno_defs.h linux-user/flat.h linux-user/hppa/sockbits.h linux-user/hppa/syscall_nr.h linux-user/hppa/termbits.h linux-user/i386/sockbits.h linux-user/i386/syscall_nr.h linux-user/i386/termbits.h linux-user/ioctls.h linux-user/m68k/sockbits.h linux-user/m68k/syscall_nr.h linux-user/m68k/termbits.h linux-user/microblaze/sockbits.h linux-user/microblaze/syscall_nr.h linux-user/microblaze/termbits.h linux-user/mips/syscall_nr.h linux-user/mips/termbits.h linux-user/mips64/sockbits.h linux-user/mips64/syscall_nr.h linux-user/mips64/target_cpu.h linux-user/mips64/target_fcntl.h linux-user/mips64/target_structs.h linux-user/mips64/termbits.h linux-user/nios2/sockbits.h linux-user/nios2/syscall_nr.h linux-user/nios2/termbits.h linux-user/openrisc/sockbits.h linux-user/openrisc/syscall_nr.h linux-user/openrisc/termbits.h linux-user/ppc/syscall_nr.h linux-user/ppc/termbits.h linux-user/riscv/sockbits.h linux-user/riscv/syscall_nr.h linux-user/riscv/target_syscall.h linux-user/riscv/termbits.h linux-user/s390x/sockbits.h linux-user/s390x/syscall_nr.h linux-user/s390x/termbits.h linux-user/sh4/sockbits.h linux-user/sh4/syscall_nr.h linux-user/sh4/termbits.h linux-user/socket.h linux-user/sparc/syscall_nr.h linux-user/sparc/termbits.h linux-user/sparc64/sockbits.h linux-user/sparc64/syscall_nr.h linux-user/sparc64/target_cpu.h linux-user/sparc64/target_fcntl.h linux-user/sparc64/target_signal.h linux-user/sparc64/termbits.h linux-user/syscall_types.h linux-user/target_flat.h linux-user/tilegx/sockbits.h linux-user/x86_64/sockbits.h linux-user/x86_64/syscall_nr.h linux-user/x86_64/target_cpu.h linux-user/x86_64/termbits.h linux-user/xtensa/sockbits.h linux-user/xtensa/target_flat.h qemu-options-wrapper.h scripts/cocci-macro-file.h target/alpha/helper.h target/arm/helper-a64.h target/arm/helper-sve.h target/arm/helper.h target/arm/op_addsub.h target/cris/crisv10-decode.h target/cris/helper.h target/cris/mmu.h target/cris/opcode-cris.h target/hppa/helper.h target/i386/cc_helper_template.h target/i386/helper.h target/i386/ops_sse.h target/i386/ops_sse_header.h target/i386/shift_helper_template.h target/i386/whp-dispatch.h target/lm32/helper.h target/m68k/helper.h target/microblaze/helper.h target/microblaze/microblaze-decode.h target/microblaze/mmu.h target/mips/helper.h target/moxie/helper.h target/moxie/machine.h target/moxie/mmu.h target/nios2/helper.h target/openrisc/helper.h target/ppc/helper.h target/riscv/cpu_bits.h target/riscv/cpu_user.h target/riscv/helper.h target/riscv/instmap.h target/s390x/helper.h target/sh4/helper.h target/sparc/helper.h target/tilegx/helper.h target/tilegx/spr_def_64.h target/tricore/helper.h target/tricore/tricore-opcodes.h target/unicore32/helper.h target/xtensa/helper.h target/xtensa/overlay_tool.h target/xtensa/xtensa-isa.h tcg/aarch64/tcg-target.opc.h tcg/i386/tcg-target.opc.h tcg/tcg-gvec-desc.h tcg/tcg-op-gvec.h tcg/tcg-opc.h tests/crypto-tls-psk-helpers.h tests/crypto-tls-x509-helpers.h tests/io-channel-helpers.h tests/libqos/virtio-9p.h tests/libqos/virtio-balloon.h tests/libqos/virtio-blk.h tests/libqos/virtio-net.h tests/libqos/virtio-rng.h tests/libqos/virtio-scsi.h tests/libqos/virtio-serial.h tests/migration/aarch64/a-b-kernel.h tests/migration/i386/a-b-bootblock.h tests/migration/s390x/a-b-bios.h tests/socket-helpers.h tests/uefi-test-tools/UefiTestToolsPkg/Include/Guid/BiosTablesTest.h ui/vgafont.h ui/vnc-enc-hextile-template.h ui/vnc_keysym.h = Sorted into MAINTAINERS buckets = Guest CPU cores (TCG): ---------------------- Overall M: Richard Henderson <r...@twiddle.net> R: Paolo Bonzini <pbonz...@redhat.com> accel/tcg/atomic_template.h accel/tcg/tcg-runtime.h include/exec/cpu_ldst_template.h include/exec/cpu_ldst_useronly_template.h FPU emulation M: Aurelien Jarno <aurel...@aurel32.net> M: Peter Maydell <peter.mayd...@linaro.org> M: Alex Bennée <alex.ben...@linaro.org> fpu/softfloat-specialize.h include/fpu/softfloat-macros.h Alpha M: Richard Henderson <r...@twiddle.net> ARM M: Peter Maydell <peter.mayd...@linaro.org> target/arm/helper-a64.h target/arm/helper-sve.h target/arm/helper.h target/arm/op_addsub.h ARM SMMU M: Eric Auger <eric.au...@redhat.com> CRIS M: Edgar E. Iglesias <edgar.igles...@gmail.com> target/cris/crisv10-decode.h target/cris/helper.h target/cris/mmu.h target/cris/opcode-cris.h HPPA (PA-RISC) M: Richard Henderson <r...@twiddle.net> target/hppa/helper.h LM32 M: Michael Walle <mich...@walle.cc> hw/display/milkymist-vgafb_template.h target/lm32/helper.h M68K M: Laurent Vivier <laur...@vivier.eu> target/m68k/helper.h MicroBlaze M: Edgar E. Iglesias <edgar.igles...@gmail.com> target/microblaze/helper.h target/microblaze/microblaze-decode.h target/microblaze/mmu.h MIPS M: Aurelien Jarno <aurel...@aurel32.net> M: Aleksandar Markovic <amarko...@wavecomp.com> R: Aleksandar Rikalo <arik...@wavecomp.com> include/hw/mips/bios.h target/mips/helper.h Moxie M: Anthony Green <gr...@moxielogic.com> target/moxie/helper.h target/moxie/machine.h target/moxie/mmu.h NiosII M: Chris Wulff <crwu...@gmail.com> M: Marek Vasut <ma...@denx.de> target/nios2/helper.h OpenRISC M: Stafford Horne <sho...@gmail.com> target/openrisc/helper.h PowerPC M: David Gibson <da...@gibson.dropbear.id.au> target/ppc/helper.h RISC-V M: Palmer Dabbelt <pal...@sifive.com> M: Alistair Francis <alistair.fran...@wdc.com> M: Sagar Karandikar <sag...@eecs.berkeley.edu> M: Bastian Koppelmann <kbast...@mail.uni-paderborn.de> target/riscv/cpu_bits.h target/riscv/cpu_user.h target/riscv/helper.h target/riscv/instmap.h S390 M: Richard Henderson <r...@twiddle.net> M: David Hildenbrand <da...@redhat.com> target/s390x/helper.h SH4 M: Aurelien Jarno <aurel...@aurel32.net> target/sh4/helper.h SPARC M: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> M: Artyom Tarasenko <atar4q...@gmail.com> include/hw/sparc/sparc64.h target/sparc/helper.h UniCore32 M: Guan Xuetao <g...@mprc.pku.edu.cn> target/unicore32/helper.h X86 M: Paolo Bonzini <pbonz...@redhat.com> M: Richard Henderson <r...@twiddle.net> M: Eduardo Habkost <ehabk...@redhat.com> target/i386/cc_helper_template.h target/i386/helper.h target/i386/ops_sse.h target/i386/ops_sse_header.h target/i386/shift_helper_template.h target/i386/whp-dispatch.h Xtensa M: Max Filippov <jcmvb...@gmail.com> target/xtensa/helper.h target/xtensa/overlay_tool.h target/xtensa/xtensa-isa.h TriCore M: Bastian Koppelmann <kbast...@mail.uni-paderborn.de> target/tricore/helper.h target/tricore/tricore-opcodes.h Multiarch Linux User Tests M: Alex Bennée <alex.ben...@linaro.org> Guest CPU Cores (KVM): ---------------------- Overall M: Paolo Bonzini <pbonz...@redhat.com> include/hw/kvm/clock.h ARM M: Peter Maydell <peter.mayd...@linaro.org> MIPS M: James Hogan <jho...@kernel.org> R: Aleksandar Rikalo <arik...@wavecomp.com> PPC M: David Gibson <da...@gibson.dropbear.id.au> S390 M: Halil Pasic <pa...@linux.ibm.com> M: Cornelia Huck <coh...@redhat.com> M: Christian Borntraeger <borntrae...@de.ibm.com> X86 M: Paolo Bonzini <pbonz...@redhat.com> M: Marcelo Tosatti <mtosa...@redhat.com> Guest CPU Cores (Xen): ---------------------- X86 M: Stefano Stabellini <sstabell...@kernel.org> M: Anthony Perard <anthony.per...@citrix.com> M: Paul Durrant <paul.durr...@citrix.com> include/hw/xen/io/ring.h ARM Machines ------------ Allwinner-a10 M: Beniamino Galvani <b.galv...@gmail.com> M: Peter Maydell <peter.mayd...@linaro.org> include/hw/arm/allwinner-a10.h ARM PrimeCell and CMSDK devices M: Peter Maydell <peter.mayd...@linaro.org> hw/display/pl110_template.h Raspberry Pi M: Peter Maydell <peter.mayd...@linaro.org> R: Andrew Baumann <andrew.baum...@microsoft.com> R: Philippe Mathieu-Daudé <f4...@amsat.org> include/hw/arm/raspi_platform.h PXA2XX M: Andrzej Zaborowski <balr...@gmail.com> M: Peter Maydell <peter.mayd...@linaro.org> hw/display/pxa2xx_template.h Xilinx ZynqMP M: Alistair Francis <alist...@alistair23.me> M: Edgar E. Iglesias <edgar.igles...@gmail.com> M: Peter Maydell <peter.mayd...@linaro.org> include/hw/arm/xlnx-zynqmp.h include/hw/display/xlnx_dp.h include/hw/dma/xlnx-zynq-devcfg.h include/hw/timer/xlnx-zynqmp-rtc.h HP-PARISC Machines ------------------ Dino M: Richard Henderson <r...@twiddle.net> R: Helge Deller <del...@gmx.de> hw/hppa/hppa_hardware.h PowerPC Machines ---------------- New World (mac99) M: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> R: David Gibson <da...@gibson.dropbear.id.au> hw/input/adb-internal.h sam460ex M: BALATON Zoltan <bala...@eik.bme.hu> hw/display/sm501_template.h SPARC Machines -------------- Sun4u M: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> include/hw/pci-bridge/simba.h Sun4v M: Artyom Tarasenko <atar4q...@gmail.com> include/hw/timer/sun4v-rtc.h Devices ------- OMAP M: Peter Maydell <peter.mayd...@linaro.org> hw/display/omap_lcd_template.h include/hw/arm/omap.h PCI M: Michael S. Tsirkin <m...@redhat.com> M: Marcel Apfelbaum <marcel.apfelb...@gmail.com> include/hw/pci/pci_regs.h Network devices M: Jason Wang <jasow...@redhat.com> hw/net/e1000e_core.h hw/net/e1000x_common.h hw/net/vmxnet3_defs.h include/hw/net/cadence_gem.h USB M: Gerd Hoffmann <kra...@redhat.com> hw/usb/hcd-xhci.h hw/usb/quirks-ftdi-ids.h hw/usb/quirks-pl2303-ids.h hw/usb/quirks.h virtio-9p M: Greg Kurz <gr...@kaod.org> hw/9pfs/xen-9pfs.h Vmware M: Dmitry Fleytman <dmitry.fleyt...@gmail.com> hw/net/vmxnet3_defs.h e1000x M: Dmitry Fleytman <dmitry.fleyt...@gmail.com> hw/net/e1000x_common.h e1000e M: Dmitry Fleytman <dmitry.fleyt...@gmail.com> hw/net/e1000e_core.h Cirrus VGA M: Gerd Hoffmann <kra...@redhat.com> hw/display/cirrus_vga_rop.h hw/display/cirrus_vga_rop2.h Subsystems ---------- Audio M: Gerd Hoffmann <kra...@redhat.com> audio/audio_template.h audio/dsound_template.h audio/mixeng_template.h audio/rate_template.h hw/audio/hda-codec-common.h SPICE M: Gerd Hoffmann <kra...@redhat.com> include/ui/spice-display.h Graphics M: Gerd Hoffmann <kra...@redhat.com> include/ui/pixel_ops.h ui/vgafont.h ui/vnc-enc-hextile-template.h ui/vnc_keysym.h qtest M: Thomas Huth <th...@redhat.com> M: Laurent Vivier <lviv...@redhat.com> R: Paolo Bonzini <pbonz...@redhat.com> tests/libqos/virtio-9p.h tests/libqos/virtio-balloon.h tests/libqos/virtio-blk.h tests/libqos/virtio-net.h tests/libqos/virtio-rng.h tests/libqos/virtio-scsi.h tests/libqos/virtio-serial.h Cryptography M: Daniel P. Berrange <berra...@redhat.com> crypto/ivgen-essiv.h crypto/ivgen-plain.h crypto/ivgen-plain64.h tests/crypto-tls-psk-helpers.h tests/crypto-tls-x509-helpers.h EDK2 Firmware M: Laszlo Ersek <ler...@redhat.com> M: Philippe Mathieu-Daudé <phi...@redhat.com> tests/uefi-test-tools/UefiTestToolsPkg/Include/Guid/BiosTablesTest.h Usermode Emulation ------------------ BSD user S: Orphan bsd-user/bsd-mman.h bsd-user/errno_defs.h bsd-user/freebsd/syscall_nr.h bsd-user/netbsd/syscall_nr.h bsd-user/openbsd/syscall_nr.h bsd-user/syscall_defs.h Linux user M: Riku Voipio <riku.voi...@iki.fi> R: Laurent Vivier <laur...@vivier.eu> linux-user/aarch64/sockbits.h linux-user/aarch64/syscall_nr.h linux-user/aarch64/termbits.h linux-user/alpha/syscall_nr.h linux-user/alpha/termbits.h linux-user/arm/sockbits.h linux-user/arm/syscall_nr.h linux-user/arm/termbits.h linux-user/cris/sockbits.h linux-user/cris/syscall_nr.h linux-user/cris/termbits.h linux-user/errno_defs.h linux-user/flat.h linux-user/hppa/sockbits.h linux-user/hppa/syscall_nr.h linux-user/hppa/termbits.h linux-user/i386/sockbits.h linux-user/i386/syscall_nr.h linux-user/i386/termbits.h linux-user/ioctls.h linux-user/m68k/sockbits.h linux-user/m68k/syscall_nr.h linux-user/m68k/termbits.h linux-user/microblaze/sockbits.h linux-user/microblaze/syscall_nr.h linux-user/microblaze/termbits.h linux-user/mips/syscall_nr.h linux-user/mips/termbits.h linux-user/mips64/sockbits.h linux-user/mips64/syscall_nr.h linux-user/mips64/target_cpu.h linux-user/mips64/target_fcntl.h linux-user/mips64/target_structs.h linux-user/mips64/termbits.h linux-user/nios2/sockbits.h linux-user/nios2/syscall_nr.h linux-user/nios2/termbits.h linux-user/openrisc/sockbits.h linux-user/openrisc/syscall_nr.h linux-user/openrisc/termbits.h linux-user/ppc/syscall_nr.h linux-user/ppc/termbits.h linux-user/riscv/sockbits.h linux-user/riscv/syscall_nr.h linux-user/riscv/target_syscall.h linux-user/riscv/termbits.h linux-user/s390x/sockbits.h linux-user/s390x/syscall_nr.h linux-user/s390x/termbits.h linux-user/sh4/sockbits.h linux-user/sh4/syscall_nr.h linux-user/sh4/termbits.h linux-user/socket.h linux-user/sparc/syscall_nr.h linux-user/sparc/termbits.h linux-user/sparc64/sockbits.h linux-user/sparc64/syscall_nr.h linux-user/sparc64/target_cpu.h linux-user/sparc64/target_fcntl.h linux-user/sparc64/target_signal.h linux-user/sparc64/termbits.h linux-user/syscall_types.h linux-user/target_flat.h linux-user/tilegx/sockbits.h linux-user/x86_64/sockbits.h linux-user/x86_64/syscall_nr.h linux-user/x86_64/target_cpu.h linux-user/x86_64/termbits.h linux-user/xtensa/sockbits.h linux-user/xtensa/target_flat.h Tiny Code Generator (TCG) ------------------------- Common code M: Richard Henderson <r...@twiddle.net> tcg/aarch64/tcg-target.opc.h tcg/tcg-gvec-desc.h tcg/tcg-op-gvec.h tcg/tcg-opc.h AArch64 target M: Claudio Fontana <claudio.font...@huawei.com> M: Claudio Fontana <claudio.font...@gmail.com> tcg/aarch64/tcg-target.opc.h i386 target M: Richard Henderson <r...@twiddle.net> tcg/i386/tcg-target.opc.h UNMAINTAINED ------------ hw/display/tc6393xb_template.h include/exec/memory_ldst.inc.h include/exec/memory_ldst_cached.inc.h include/exec/memory_ldst_phys.inc.h include/hw/char/cadence_uart.h include/hw/elf_ops.h include/hw/qdev-dma.h include/libdecnumber/dconfig.h include/libdecnumber/decDPD.h include/libdecnumber/dpd/decimal128Local.h qemu-options-wrapper.h scripts/cocci-macro-file.h target/tilegx/helper.h target/tilegx/spr_def_64.h tests/io-channel-helpers.h tests/migration/aarch64/a-b-kernel.h tests/migration/i386/a-b-bootblock.h tests/migration/s390x/a-b-bios.h tests/socket-helpers.h