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: Markus Armbruster <[email protected]> > Signed-off-by: Marc-André Lureau <[email protected]> > --- > include/qapi/qapi-type-info.h | 31 +++++++++++++++++++++++++++++++ > 1 file changed, 31 insertions(+) > > diff --git a/include/qapi/qapi-type-info.h b/include/qapi/qapi-type-info.h > new file mode 100644 > index 000000000000..6a6355568325 > --- /dev/null > +++ b/include/qapi/qapi-type-info.h > @@ -0,0 +1,31 @@ > +/* > + * 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"). > + * @lookup: QEnumLookup for this type, or NULL for non-enum types. > + * visit_type_enum(), qapi_enum_parse(), and qapi_enum_lookup() > + * all rely on it. > + * @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 */
As far as I can tell, @name is used outside tests only for an error message in object_property_get_enum(), and I'm not sure that error makes sense. Observation, not a demand.
