typedefs: Separate incomplete types and function types

While there, rewrite the obsolete file comment.

Backports commit 2a28720d773df2193c9fb633c02092cca107a9e5 from qemu
This commit is contained in:
Markus Armbruster 2019-11-18 16:37:19 -05:00 committed by Lioncash
parent f773fd7fef
commit bb1f47545c
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7

View File

@ -1,10 +1,27 @@
#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. */
/*
* 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.
*/
/* Please keep this list in alphabetical order */
typedef struct AdapterInfo AdapterInfo;
typedef struct AddressSpace AddressSpace;
typedef struct AioContext AioContext;
@ -86,4 +103,8 @@ typedef struct VirtIODevice VirtIODevice;
typedef struct Visitor Visitor;
typedef struct uWireSlave uWireSlave;
/*
* Function types
*/
#endif /* QEMU_TYPEDEFS_H */