On Thu, Jun 04, 2026 at 07:11:17PM -0400, Peter Xu wrote: > Firstly, qdev_class_add_property() function almost has nothing to do with > DeviceClass, it's a bridge between Property and object properties. > > Change the 1st parameter of it, so that it can be used without DeviceClass > context at all. When at it, remove the "name" field because it's always > prop->name. > > Export it for non-qdev use cases. > > Signed-off-by: Peter Xu <[email protected]> > --- > include/hw/core/qdev-properties.h | 10 ++++++++++ > hw/core/qdev-properties.c | 7 +++---- > 2 files changed, 13 insertions(+), 4 deletions(-) > > diff --git a/include/hw/core/qdev-properties.h > b/include/hw/core/qdev-properties.h > index 779acb31b6..fec2aaac4d 100644 > --- a/include/hw/core/qdev-properties.h > +++ b/include/hw/core/qdev-properties.h > @@ -283,6 +283,16 @@ void error_set_from_qdev_prop_error(Error **errp, int > ret, Object *obj, > */ > void qdev_property_add_static(DeviceState *dev, const Property *prop); > > +/** > + * object_class_add_property: > + * @oc: Object class to operate on. > + * @prop: The qdev property definition. > + * > + * Add a Property to @oc. This is the bridge to convert a Property into > + * an object class property (as in ObjectClass.properties). > + */ > +void object_class_add_property(ObjectClass *oc, const Property *prop);
I'm really not a fan of this. Having both object_class_add_property and object_class_property_add methods is horrendous naming. Methods named with an "object_class_" prefix must live in qom/object.c & include/qom/object.h not in qdev. If doing that though, then the entire "Property" concept would need to live in QOM code too, but I don't think that is either desirable or neccessary. AFAICT, the MigrationState class init method could just call the existing object_class_property_add methods as any other non-qdev Object impl does. With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
