> On Feb 3, 2020, at 4:10 PM, Marc-André Lureau <marcandre.lur...@gmail.com> > wrote: > > Hi > > On Mon, Feb 3, 2020 at 5:08 PM Felipe Franciosi <fel...@nutanix.com> wrote: >> >> Oops, I completely forgot to add a "v5" on the subject line. >> >> (The changelog is there.) >> >> Let me know if I should resend. >> >> F. >> >>> On Feb 3, 2020, at 3:54 PM, Felipe Franciosi <fel...@nutanix.com> wrote: >>> >>> This improves the family of object_property_add_uintXX_ptr helpers by >>> enabling >>> a default getter/setter only when desired. To prevent an API behavioural >>> change >>> (from clients that already used these helpers and did not want a setter), we >>> add a OBJ_PROP_FLAG_READ flag that allow clients to only have a getter. >>> Patch 1 >>> enhances the API and modify current users. >>> >>> While modifying the clients of the API, a couple of improvement >>> opportunities >>> were observed in ich9. These were added in separate patches (2 and 3). >>> >>> Patch 4 cleans up a lot of existing code by moving various objects to the >>> enhanced API. Previously, those objects had their own getters/setters that >>> only >>> updated the values without further checks. Some of them actually lacked a >>> check >>> for setting overflows, which could have resulted in undesired values being >>> set. >>> The new default setters include a check for that, not updating the values in >>> case of errors (and propagating them). If they did not provide an error >>> pointer, then that behaviour was maintained. >>> >>> Felipe Franciosi (4): >>> qom/object: enable setter for uint types >>> ich9: fix getter type for sci_int property >>> ich9: Simplify ich9_lpc_initfn >>> qom/object: Use common get/set uint helpers >>> >>> hw/acpi/ich9.c | 99 ++------------------ >>> hw/acpi/pcihp.c | 7 +- >>> hw/acpi/piix4.c | 12 +-- >>> hw/isa/lpc_ich9.c | 27 ++---- >>> hw/misc/edu.c | 13 +-- >>> hw/pci-host/q35.c | 14 +-- >>> hw/ppc/spapr.c | 18 +--- >>> hw/ppc/spapr_drc.c | 3 +- >>> include/qom/object.h | 48 ++++++++-- >>> memory.c | 15 +-- >>> qom/object.c | 214 ++++++++++++++++++++++++++++++++++++++----- >>> target/arm/cpu.c | 22 +---- >>> target/i386/sev.c | 106 ++------------------- >>> ui/console.c | 4 +- >>> 14 files changed, 283 insertions(+), 319 deletions(-) >>> >>> -- >>> 2.20.1 >>> >>> Changelog: >>> v1->v2: >>> - Update sci_int directly instead of using stack variable >>> - Defining an enhanced ObjectPropertyFlags instead of just 'readonly' >>> - Erroring out directly (instead of using gotos) on default setters >>> - Retaining lack of errp passing when it wasn't there >>> v2->v3: >>> - Rename flags _RD to _READ and _WR to _WRITE >>> - Add a convenience _READWRITE flag >>> - Drop the usage of UL in the bit flag definitions >>> v3->v4: >>> - Drop changes to hw/vfio/pci-quirks.c >>> v4->v5: >>> - Rebase on latest master >>> - Available here: https://github.com/franciozzy/qemu/tree/autosetters > > Thanks for the rebase, it looks good overall, but: > > qom/object.c:2707:1: error: control reaches end of non-void function > [-Werror=return-type]
That was an oversight. :) Let me fix it and send a corrected (v6) subject line. Felipe > > > -- > Marc-André Lureau