[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get of
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset |
Date: |
Thu, 22 Oct 2020 07:06:58 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Eduardo Habkost <ehabkost@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 <ehabkost@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.
- [PATCH 00/12] qom: Make all -object types use only class properties, Eduardo Habkost, 2020/10/09
- [PATCH 01/12] qom: Helpers for pointer properties, Eduardo Habkost, 2020/10/09
- [PATCH 02/12] qom: Introduce PointerProperty struct, Eduardo Habkost, 2020/10/09
- [PATCH 04/12] sev: Use class properties, Eduardo Habkost, 2020/10/09
- [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Eduardo Habkost, 2020/10/09
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Eric Blake, 2020/10/09
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Igor Mammedov, 2020/10/21
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Igor Mammedov, 2020/10/23
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Eduardo Habkost, 2020/10/27
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Paolo Bonzini, 2020/10/28
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Igor Mammedov, 2020/10/28
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Eduardo Habkost, 2020/10/29
- Re: [PATCH 03/12] qom: Make object_class_property_add_uint*_ptr() get offset, Igor Mammedov, 2020/10/29
[PATCH 06/12] can_host: Use class properties, Eduardo Habkost, 2020/10/09
[PATCH 05/12] rng: Use class properties, Eduardo Habkost, 2020/10/09