On Tue, Jul 07, 2026 at 02:08:25PM +0100, Mark Cave-Ayland wrote:
> On 07/07/2026 13:05, Daniel P. Berrangé wrote:
> 
> > On Fri, Jul 03, 2026 at 02:53:03PM +0100, Mark Cave-Ayland wrote:
> > > This more accurately reflects that these properties are held within the 
> > > class and
> > > not the object.
> > > 
> > > Signed-off-by: Mark Cave-Ayland <[email protected]>
> > > ---
> > >   include/qom/object.h |  8 ++++----
> > >   hw/riscv/spike.c     |  5 +++--
> > >   qom/object.c         | 28 ++++++++++++++++------------
> > >   3 files changed, 23 insertions(+), 18 deletions(-)
> > > 
> > > diff --git a/include/qom/object.h b/include/qom/object.h
> > > index 11f55613fc..89c23d45ab 100644
> > > --- a/include/qom/object.h
> > > +++ b/include/qom/object.h
> > > @@ -1956,7 +1956,7 @@ ObjectProperty 
> > > *object_property_add_uint8_ptr(Object *obj, const char *name,
> > >                                                 const uint8_t *v,
> > >                                                 ObjectPropertyFlags 
> > > flags);
> > > -ObjectProperty *object_class_property_add_uint8_ptr(ObjectClass *klass,
> > > +ObjectProperty *object_class_static_property_add_uint8_ptr(ObjectClass 
> > > *klass,
> > >                                            const char *name,
> > >                                            const uint8_t *v,
> > >                                            ObjectPropertyFlags flags);
> > > @@ -1977,7 +1977,7 @@ ObjectProperty 
> > > *object_property_add_uint16_ptr(Object *obj, const char *name,
> > >                                       const uint16_t *v,
> > >                                       ObjectPropertyFlags flags);
> > > -ObjectProperty *object_class_property_add_uint16_ptr(ObjectClass *klass,
> > > +ObjectProperty *object_class_static_property_add_uint16_ptr(ObjectClass 
> > > *klass,
> > >                                             const char *name,
> > >                                             const uint16_t *v,
> > >                                             ObjectPropertyFlags flags);
> > > @@ -1998,7 +1998,7 @@ ObjectProperty 
> > > *object_property_add_uint32_ptr(Object *obj, const char *name,
> > >                                       const uint32_t *v,
> > >                                       ObjectPropertyFlags flags);
> > > -ObjectProperty *object_class_property_add_uint32_ptr(ObjectClass *klass,
> > > +ObjectProperty *object_class_static_property_add_uint32_ptr(ObjectClass 
> > > *klass,
> > >                                             const char *name,
> > >                                             const uint32_t *v,
> > >                                             ObjectPropertyFlags flags);
> > > @@ -2019,7 +2019,7 @@ ObjectProperty 
> > > *object_property_add_uint64_ptr(Object *obj, const char *name,
> > >                                       const uint64_t *v,
> > >                                       ObjectPropertyFlags flags);
> > > -ObjectProperty *object_class_property_add_uint64_ptr(ObjectClass *klass,
> > > +ObjectProperty *object_class_static_property_add_uint64_ptr(ObjectClass 
> > > *klass,
> > >                                             const char *name,
> > >                                             const uint64_t *v,
> > >                                             ObjectPropertyFlags flags);
> > > diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
> > > index 9fde0faf39..630b65f569 100644
> > > --- a/hw/riscv/spike.c
> > > +++ b/hw/riscv/spike.c
> > > @@ -278,8 +278,9 @@ static void spike_machine_class_init(ObjectClass *oc, 
> > > const void *data)
> > >       object_class_property_add_str(oc, "signature", NULL, 
> > > spike_set_signature);
> > >       object_class_property_set_description(oc, "signature",
> > >                                             "File to write ACT test 
> > > signature");
> > > -    object_class_property_add_uint8_ptr(oc, "signature-granularity",
> > > -                                        &line_size, OBJ_PROP_FLAG_WRITE);
> > > +    object_class_static_property_add_uint8_ptr(oc, 
> > > "signature-granularity",
> > > +                                               &line_size,
> > > +                                               OBJ_PROP_FLAG_WRITE);
> > 
> > When we have just one use of these "static property" API in the code base,
> > I wonder if we genuinely need these APIs ?
> 
> There are actually more uses in hw/acpi later on in the series: see patches
> 7, 9 and 12.

Ok, I missed that, only looking an existnig code.

> > I wonder why "line_size" isn't merely a field in the machine class ?
> > External code ought to be able to fetch the current machine and read
> > a line_size struct field, surely ?
> 
> It certainly looks odd from here: one of things I wanted to discuss on the
> call was how to approach the conversion.
> 
> My current thinking is that the aim should be simply to convert everything
> as-is, and avoid attempting any refactorings or converting to a device class
> prop via device_class_set_props() if possible. Otherwise anyone attempting
> conversions will get stuck in the details of the individual devices, which I
> would argue is more the remit of maintainers.

Yeah, ok, that is probably a wise approach to minimizing complexity.

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