Re: [PATCH v3 01/74] qapi: add QAPITypeInfo struct definition
Markus Armbruster <[email protected]>
| Newsgroups | org.nongnu.qemu-devel |
|---|---|
| Message-ID | <[email protected]> |
Marc-André Lureau <[email protected]> writes: > Introduce a minimal struct that pairs a QAPI type's internal name with > its "masked" introspection name. Generated constants of this type will > let QOM property registration carry a reliable reference to the QAPI > schema and possibly other associated data. > > The fields are populated in following commits. > > Signed-off-by: Marc-André Lureau <[email protected]> > --- > include/qapi/qapi-type-info.h | 32 ++++++++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/include/qapi/qapi-type-info.h b/include/qapi/qapi-type-info.h > new file mode 100644 > index 000000000000..97eb1d7bf490 > --- /dev/null > +++ b/include/qapi/qapi-type-info.h > @@ -0,0 +1,32 @@ > +/* > + * SPDX-License-Identifier: GPL-2.0-or-later > + */ > + > +#ifndef QAPI_TYPE_INFO_H > +#define QAPI_TYPE_INFO_H > + > +#include "qapi/util.h" > + > +/** > + * QAPITypeInfo - QAPI type metadata > + * > + * @name: QAPI type name (e.g. "str", "OnOffAuto", "int32List"). > + * QOM uses this as the property type string. > + * @masked_name: Name of the type in the QAPI introspection schema, assigned by > + * scripts/qapi code generator (e.g. "368"). Suggest 'Name of the type in output of query-qmp-schema (e.g. "368")'. > + * NULL for implicit types. Can this happen? I can't see any QAPITypeInfo with null @masked_name at the end of the series. > + * @lookup: QEnumLookup for this type, or NULL for non-enum types. Maybe ', null unless it's an enum type'. > + * visit_type_enum(), qapi_enum_parse(), and qapi_enum_lookup() > + * all rely on it. "It" is ambiguous: is it the @lookup pointer or the struct it points to? The latter is correct. Is the sentence useful? > + * @list: The list-type counterpart, or NULL if none exists. > + * str_type_info.list points to strList_type_info. qdev array > + * properties follow this to find the list type for their element. > + */ > +typedef struct QAPITypeInfo { > + const char *name; > + const char *masked_name; > + const QEnumLookup *lookup; > + const struct QAPITypeInfo *list; > +} QAPITypeInfo; > + > +#endif /* QAPI_TYPE_INFO_H */