[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] When to use qemu/typedefs.h
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] When to use qemu/typedefs.h |
Date: |
Wed, 31 Jul 2019 08:43:33 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 31/07/19 08:37, Markus Armbruster wrote:
> Paolo Bonzini <address@hidden> writes:
>
>> On 30/07/19 15:15, Eric Blake wrote:
>>>> We occasionally give up and use types directly rather than their typedef
>>>> names, flouting the coding style. This patch does. Trades messing with
>>>> qemu/typedefs.h for having to write 'struct' a few times.
>>
>> I think Markus made the right call here. Using "struct Foo;" in headers
>> is a null price to pay if all you need is declaring a pointer-typed
>> field or parameter.
>
> Eduardo posted a patch to HACKING to clarify this non-usage of typedef
> is okay.
>
> Should we continue to mandate typedef names elsewhere? It adds
> cognitive load: you have to decide where to put the typedef, and when
> not to use it.
A lot of libraries we use (especially GLib) use typedefs, so I'd rather
keep them. Also, a mass replacement would be tens of thousands of
changed lines and not really practical.
>> Of course this doesn't apply if you have to embed a
>> struct directly, but then qemu/typedefs.h wouldn't help either.
>
> Yes, and if this leads to an inclusion cycle, I strongly suspect "fat"
> headers: since you can't embed something in itself, the cycle must
> involve different things, all bunched together in the same header.
>
>> In general unless you're adding a new subsystem, qemu/typedefs.h should
>> only decrease in size, never increase.
>
> This series grows it some. I'll try to avoid that for v2.
Let me review it first. :) Maybe some of them are good to keep.
Paolo
- Re: [Qemu-devel] [PATCH 04/28] memory: Fix type of IOMMUMemoryRegionClass member @parent_class, (continued)
- [Qemu-devel] [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h, Markus Armbruster, 2019/07/26
- Re: [Qemu-devel] [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h, Eduardo Habkost, 2019/07/29
- [Qemu-devel] When to use qemu/typedefs.h (was: [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h), Markus Armbruster, 2019/07/30
- Re: [Qemu-devel] When to use qemu/typedefs.h (was: [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h), Eric Blake, 2019/07/30
- Re: [Qemu-devel] When to use qemu/typedefs.h (was: [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h), Paolo Bonzini, 2019/07/30
- [Qemu-devel] [RFC] HACKING: Document 'struct' keyword usage, Eduardo Habkost, 2019/07/30
- Re: [Qemu-devel] [RFC] HACKING: Document 'struct' keyword usage, Eric Blake, 2019/07/30
- Re: [Qemu-devel] [RFC] HACKING: Document 'struct' keyword usage, Thomas Huth, 2019/07/31
- Re: [Qemu-devel] When to use qemu/typedefs.h, Markus Armbruster, 2019/07/31
- Re: [Qemu-devel] When to use qemu/typedefs.h,
Paolo Bonzini <=
- Re: [Qemu-devel] When to use qemu/typedefs.h, Thomas Huth, 2019/07/31
- Re: [Qemu-devel] When to use qemu/typedefs.h, Peter Maydell, 2019/07/31
- Re: [Qemu-devel] When to use qemu/typedefs.h, Daniel P . Berrangé, 2019/07/31
- Re: [Qemu-devel] When to use qemu/typedefs.h (was: [PATCH 23/28] numa: Don't include hw/boards.h into sysemu/numa.h), Eduardo Habkost, 2019/07/30
[Qemu-devel] [PATCH 07/28] trace: Do not include qom/cpu.h into generated trace.h, Markus Armbruster, 2019/07/26
[Qemu-devel] [PATCH 08/28] Include sysemu/reset.h a lot less, Markus Armbruster, 2019/07/26
[Qemu-devel] [PATCH 15/28] Include migration/vmstate.h less, Markus Armbruster, 2019/07/26