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 :|


Reply via email to