[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 11/29] typedefs: Separate incomplete types an
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH v4 11/29] typedefs: Separate incomplete types and function types |
Date: |
Tue, 13 Aug 2019 11:44:07 +0100 |
User-agent: |
mu4e 1.3.4; emacs 27.0.50 |
Markus Armbruster <address@hidden> writes:
> Markus Armbruster <address@hidden> writes:
>
>> Alex Bennée <address@hidden> writes:
>>
>>> Markus Armbruster <address@hidden> writes:
>>>
>>>> While there, drop the obsolete file comment.
>>>>
>>>> Signed-off-by: Markus Armbruster <address@hidden>
>>>> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
>>>> Tested-by: Philippe Mathieu-Daudé <address@hidden>
>>>> ---
>>>> include/qemu/typedefs.h | 12 ++++++++----
>>>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/include/qemu/typedefs.h b/include/qemu/typedefs.h
>>>> index fcdaae58c4..29346648d4 100644
>>>> --- a/include/qemu/typedefs.h
>>>> +++ b/include/qemu/typedefs.h
>>>> @@ -1,10 +1,10 @@
>>>> #ifndef QEMU_TYPEDEFS_H
>>>> #define QEMU_TYPEDEFS_H
>>>>
>>>> -/* A load of opaque types so that device init declarations don't have to
>>>> - pull in all the real definitions. */
>>>> -
>>>> -/* Please keep this list in case-insensitive alphabetical order */
>>>> +/*
>>>> + * Incomplete struct types
>>>
>>> Maybe expand this a little...
>>>
>>> "Incomplete struct types for modules that don't need the complete
>>> definitions but still pass around typed variables."?
>>
>> If we explain proper use of qemu/typedefs.h in HACKING, as discussed in
>> review of v1[*], we could point there.
>
> Perhaps rewriting the obsolete file comment would be better. Something
> like this:
>
> /*
> * This header is for selectively avoiding #include just to get a
> * typedef name.
> *
> * Declaring a typedef name in its "obvious" place can result in
> * inclusion cycles, in particular for complete struct and union
> * types that need more types for their members. It can also result
> * in headers pulling in many more headers, slowing down builds.
> *
> * You can break such cycles and unwanted dependencies by declaring
> * the typedef name here.
> *
> * For struct types used in only a few headers, judicious use of the
> * struct tag instead of the typedef name is commonly preferable.
> */
>
> /*
> * Incomplete struct types
> * Please keep this list in case-insensitive alphabetical order.
> */
> typedef struct AdapterInfo AdapterInfo;
> [...]
>
> /*
> * Pointer types
> * Such typedefs should be limited to cases where the typedef's users
> * are oblivious of its "pointer-ness".
> * Please keep this list in case-insensitive alphabetical order.
> */
> typedef struct IRQState *qemu_irq;
>
> /*
> * Function types
> */
> typedef void SaveStateHandler(QEMUFile *f, void *opaque);
> typedef int LoadStateHandler(QEMUFile *f, void *opaque, int version_id);
> typedef void (*qemu_irq_handler)(void *opaque, int n, int level);
>
> What do you think?
A definite improvement on what is currently there ;-)
>
> [...]
--
Alex Bennée
[Qemu-devel] [PATCH v4 02/29] Include generated QAPI headers less, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 06/29] trace: Eliminate use of TARGET_FMT_plx, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 13/29] Clean up inclusion of exec/cpu-common.h, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 05/29] queue: Drop superfluous #include qemu/atomic.h, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 03/29] qapi: Split error.json off common.json, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 14/29] migration: Move the VMStateDescription typedef to typedefs.h, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 10/29] ide: Include hw/ide/internal a bit less outside hw/ide/, Markus Armbruster, 2019/08/12
[Qemu-devel] [PATCH v4 09/29] Include migration/qemu-file-types.h a lot less, Markus Armbruster, 2019/08/12