[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes
From: |
Markus Armbruster |
Subject: |
Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes |
Date: |
Fri, 23 Dec 2022 06:27:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) |
"Michael S. Tsirkin" <mst@redhat.com> writes:
> On Thu, Dec 22, 2022 at 11:48:25AM +0100, Markus Armbruster wrote:
>> Bernhard Beschow <shentey@gmail.com> writes:
>>
>> > Am 22. Dezember 2022 10:03:23 UTC schrieb Markus Armbruster
>> > <armbru@redhat.com>:
>> >>Back in 2016, we discussed[1] 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.
>> >
>> > Sounds like these -- useful and sane -- rules belong in QEMU's coding
>> > style. What about putting them there for easy reference?
>>
>> Makes sense. I'll see what I can do. Thanks!
>
> It would be even better if there was e.g. a make target
> pulling in each header and making sure it's self consistent and
> no circularity. We could run it e.g. in CI.
Yes, that would be nice, but the problem I've been unable to crack is
deciding whether a header is supposed to compile target-independently or
not. In my manual testing, I use trial and error: if it fails to
compile target-independently, compile for all targets. This is s-l-o-w.
The other problem, of course, is coding it up in Meson. I haven't even
tried.
- [PATCH v2 6/7] include/hw/pci: Include hw/pci/pci.h where needed, (continued)
- [PATCH v2 6/7] include/hw/pci: Include hw/pci/pci.h where needed, Markus Armbruster, 2022/12/22
- [PATCH v2 3/7] include/hw/cxl: Include hw/cxl/*.h where needed, Markus Armbruster, 2022/12/22
- [PATCH v2 5/7] include/hw/pci: Split pci_device.h off pci.h, Markus Armbruster, 2022/12/22
- [PATCH v2 4/7] include/hw/pci: Clean up a few things checkpatch.pl would flag, Markus Armbruster, 2022/12/22
- [PATCH v2 1/7] include/hw/pci: Break inclusion loop pci_bridge.h and cxl.h, Markus Armbruster, 2022/12/22
- [PATCH v2 2/7] include/hw/cxl: Move typedef PXBDev to cxl.h, and put it to use, Markus Armbruster, 2022/12/22
- [PATCH v2 7/7] include/hw/cxl: Break inclusion loop cxl_pci.h and cxl_cdat_h, Markus Armbruster, 2022/12/22
- Re: [PATCH v2 0/7] include/hw/pci include/hw/cxl: Clean up includes, Bernhard Beschow, 2022/12/22