Eduardo Habkost <ehabk...@redhat.com> writes: > On Wed, Oct 21, 2020 at 02:24:08PM +0200, Igor Mammedov wrote: >> On Fri, 9 Oct 2020 12:01:13 -0400 >> Eduardo Habkost <ehabk...@redhat.com> wrote: >> >> > The existing object_class_property_add_uint*_ptr() functions are >> > not very useful, because they need a pointer to the property >> > value, which can't really be provided before the object is >> > created. >> > >> > Replace the pointer parameter in those functions with a >> > `ptrdiff_t offset` parameter. >> > >> > Include a uint8 class property in check-qom-proplist unit tests, >> > to ensure the feature is working. >> >> >> Not sure I like approach, it's reinventing qdev pointer properties in QOM >> form. > > Yes, and that's on purpose. If we want to eventually merge the > two competing APIs into a single one, we need to make them > converge. > >> I had an impression that Paolo wanted qdev pointer properties be gone >> and replaced by something like link properties. > > This is completely unrelated to qdev pointer properties and link > properties. The properties that use object_property_add_uint*_ptr() > today are not qdev pointer properties and will never be link > properties. They are just integer properties. > >> >> object_property_add_uintXX_ptr() were introduced as a quick hack, >> when ACPI code generation was moved from Seabios, to avoid more >> code shuffling in device models and adding more boiler plate in >> form of custom setters/getters (the later didn't seem to bother >> us everywhere else where we use object_[class_]property_add() ). >> Then it spread little bit to another places. >> >> I'd rather get rid of object_property_add_uintXX_ptr() API altogether >> in favor of object_[class_]property_add() like it is used in other places >> to handle intXX properties. >> Adding helpers similar to object_property_add_bool() for intXX >> could reduce boiler plate need for converting current instances of >> _ptr(), and such helpers would also help with reducing boilerplate >> for the rest of instances where object_[class_]property_add() >> currently is used for dealing with integers. > > I find object_property_add_bool() terrible. It requires too much > boilerplate. I actually have plans to introduce > object*_property_add_bool_ptr() to simplify existing > object_property_add_bool() callers. > > I don't love object*_property_add_*_ptr() either. I consider the > qdev property API better. But we need a reasonable alternative, > because the qdev API can't be used by non-device objects yet.
Emphasis on *yet*: we should be able to lift it up into QOM, shouldn't we? > I don't think object*_property_add() and > object*_property_add_bool() are reasonable alternatives.