Message ID | 20201111183823.283752-10-ehabkost@redhat.com |
---|---|
State | New |
Headers | show |
Series | qom: Convert some properties to class properties | expand |
Looks good for me, but Qemu still have lots of parts use object_property_add, do you have plan to change it? Reviewed-by: Zhang Chen <chen.zhang@intel.com> Thanks Chen > -----Original Message----- > From: Eduardo Habkost <ehabkost@redhat.com> > Sent: Thursday, November 12, 2020 2:38 AM > To: qemu-devel@nongnu.org > Cc: Daniel P. Berrange <berrange@redhat.com>; John Snow > <jsnow@redhat.com>; Paolo Bonzini <pbonzini@redhat.com>; Zhang, Chen > <chen.zhang@intel.com>; Li Zhijian <lizhijian@cn.fujitsu.com>; Jason Wang > <jasowang@redhat.com> > Subject: [PATCH v2 09/12] colo: Use class properties > > Instance properties make introspection hard and are not shown by "- > object ...,help". Convert them to class properties. > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> > --- > This was originally submitted as part of the series: > Subject: [PATCH 00/12] qom: Make all -object types use only class properties > Message-Id: <20201009160122.1662082-1-ehabkost@redhat.com> > https://lore.kernel.org/qemu-devel/20201009160122.1662082-1- > ehabkost@redhat.com > --- > Cc: Zhang Chen <chen.zhang@intel.com> > Cc: Li Zhijian <lizhijian@cn.fujitsu.com> > Cc: Jason Wang <jasowang@redhat.com> > Cc: qemu-devel@nongnu.org > --- > net/colo-compare.c | 57 +++++++++++++++++++++++----------------------- > 1 file changed, 29 insertions(+), 28 deletions(-) > > diff --git a/net/colo-compare.c b/net/colo-compare.c index > 3a45d64175..017e82dd8b 100644 > --- a/net/colo-compare.c > +++ b/net/colo-compare.c > @@ -1375,6 +1375,35 @@ static void colo_compare_class_init(ObjectClass > *oc, void *data) { > UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc); > > + object_class_property_add_str(oc, "primary_in", > + compare_get_pri_indev, compare_set_pri_indev); > + object_class_property_add_str(oc, "secondary_in", > + compare_get_sec_indev, compare_set_sec_indev); > + object_class_property_add_str(oc, "outdev", > + compare_get_outdev, compare_set_outdev); > + object_class_property_add_link(oc, "iothread", TYPE_IOTHREAD, > + offsetof(CompareState, iothread), > + object_property_allow_set_link, > + OBJ_PROP_LINK_STRONG); > + /* This parameter just for Xen COLO */ > + object_class_property_add_str(oc, "notify_dev", > + compare_get_notify_dev, > + compare_set_notify_dev); > + > + object_class_property_add(oc, "compare_timeout", "uint32", > + compare_get_timeout, > + compare_set_timeout, NULL, NULL); > + > + object_class_property_add(oc, "expired_scan_cycle", "uint32", > + compare_get_expired_scan_cycle, > + compare_set_expired_scan_cycle, NULL, > + NULL); > + > + object_class_property_add(oc, "max_queue_size", "uint32", > + get_max_queue_size, > + set_max_queue_size, NULL, NULL); > + > + object_class_property_add_bool(oc, "vnet_hdr_support", > compare_get_vnet_hdr, > + compare_set_vnet_hdr); > + > ucc->complete = colo_compare_complete; } > > @@ -1382,35 +1411,7 @@ static void colo_compare_init(Object *obj) { > CompareState *s = COLO_COMPARE(obj); > > - object_property_add_str(obj, "primary_in", > - compare_get_pri_indev, compare_set_pri_indev); > - object_property_add_str(obj, "secondary_in", > - compare_get_sec_indev, compare_set_sec_indev); > - object_property_add_str(obj, "outdev", > - compare_get_outdev, compare_set_outdev); > - object_property_add_link(obj, "iothread", TYPE_IOTHREAD, > - (Object **)&s->iothread, > - object_property_allow_set_link, > - OBJ_PROP_LINK_STRONG); > - /* This parameter just for Xen COLO */ > - object_property_add_str(obj, "notify_dev", > - compare_get_notify_dev, compare_set_notify_dev); > - > - object_property_add(obj, "compare_timeout", "uint32", > - compare_get_timeout, > - compare_set_timeout, NULL, NULL); > - > - object_property_add(obj, "expired_scan_cycle", "uint32", > - compare_get_expired_scan_cycle, > - compare_set_expired_scan_cycle, NULL, NULL); > - > - object_property_add(obj, "max_queue_size", "uint32", > - get_max_queue_size, > - set_max_queue_size, NULL, NULL); > - > s->vnet_hdr = false; > - object_property_add_bool(obj, "vnet_hdr_support", > compare_get_vnet_hdr, > - compare_set_vnet_hdr); > } > > static void colo_compare_finalize(Object *obj) > -- > 2.28.0
On Fri, Nov 13, 2020 at 03:04:55AM +0000, Zhang, Chen wrote: > Looks good for me, but Qemu still have lots of parts use > object_property_add, do you have plan to change it? Thanks! The plan is to minimize usage of object_property_add(), but that's a huge task. We're doing it gradually when it is more useful (like on user-visible devices or backend objects).
diff --git a/net/colo-compare.c b/net/colo-compare.c index 3a45d64175..017e82dd8b 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -1375,6 +1375,35 @@ static void colo_compare_class_init(ObjectClass *oc, void *data) { UserCreatableClass *ucc = USER_CREATABLE_CLASS(oc); + object_class_property_add_str(oc, "primary_in", + compare_get_pri_indev, compare_set_pri_indev); + object_class_property_add_str(oc, "secondary_in", + compare_get_sec_indev, compare_set_sec_indev); + object_class_property_add_str(oc, "outdev", + compare_get_outdev, compare_set_outdev); + object_class_property_add_link(oc, "iothread", TYPE_IOTHREAD, + offsetof(CompareState, iothread), + object_property_allow_set_link, + OBJ_PROP_LINK_STRONG); + /* This parameter just for Xen COLO */ + object_class_property_add_str(oc, "notify_dev", + compare_get_notify_dev, compare_set_notify_dev); + + object_class_property_add(oc, "compare_timeout", "uint32", + compare_get_timeout, + compare_set_timeout, NULL, NULL); + + object_class_property_add(oc, "expired_scan_cycle", "uint32", + compare_get_expired_scan_cycle, + compare_set_expired_scan_cycle, NULL, NULL); + + object_class_property_add(oc, "max_queue_size", "uint32", + get_max_queue_size, + set_max_queue_size, NULL, NULL); + + object_class_property_add_bool(oc, "vnet_hdr_support", compare_get_vnet_hdr, + compare_set_vnet_hdr); + ucc->complete = colo_compare_complete; } @@ -1382,35 +1411,7 @@ static void colo_compare_init(Object *obj) { CompareState *s = COLO_COMPARE(obj); - object_property_add_str(obj, "primary_in", - compare_get_pri_indev, compare_set_pri_indev); - object_property_add_str(obj, "secondary_in", - compare_get_sec_indev, compare_set_sec_indev); - object_property_add_str(obj, "outdev", - compare_get_outdev, compare_set_outdev); - object_property_add_link(obj, "iothread", TYPE_IOTHREAD, - (Object **)&s->iothread, - object_property_allow_set_link, - OBJ_PROP_LINK_STRONG); - /* This parameter just for Xen COLO */ - object_property_add_str(obj, "notify_dev", - compare_get_notify_dev, compare_set_notify_dev); - - object_property_add(obj, "compare_timeout", "uint32", - compare_get_timeout, - compare_set_timeout, NULL, NULL); - - object_property_add(obj, "expired_scan_cycle", "uint32", - compare_get_expired_scan_cycle, - compare_set_expired_scan_cycle, NULL, NULL); - - object_property_add(obj, "max_queue_size", "uint32", - get_max_queue_size, - set_max_queue_size, NULL, NULL); - s->vnet_hdr = false; - object_property_add_bool(obj, "vnet_hdr_support", compare_get_vnet_hdr, - compare_set_vnet_hdr); } static void colo_compare_finalize(Object *obj)
Instance properties make introspection hard and are not shown by "-object ...,help". Convert them to class properties. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> --- This was originally submitted as part of the series: Subject: [PATCH 00/12] qom: Make all -object types use only class properties Message-Id: <20201009160122.1662082-1-ehabkost@redhat.com> https://lore.kernel.org/qemu-devel/20201009160122.1662082-1-ehabkost@redhat.com --- Cc: Zhang Chen <chen.zhang@intel.com> Cc: Li Zhijian <lizhijian@cn.fujitsu.com> Cc: Jason Wang <jasowang@redhat.com> Cc: qemu-devel@nongnu.org --- net/colo-compare.c | 57 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 28 deletions(-)