All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Improve default object property_add uint helpers
@ 2019-11-25 15:36 Felipe Franciosi
  2019-11-25 15:36 ` [PATCH 1/4] qom/object: enable setter for uint types Felipe Franciosi
                   ` (3 more replies)
  0 siblings, 4 replies; 18+ messages in thread
From: Felipe Franciosi @ 2019-11-25 15:36 UTC (permalink / raw)
  To: Eduardo Habkost, Markus Armbruster, Stefan Hajnoczi
  Cc: qemu-devel, Felipe Franciosi

This improves the family of object_property_add_uintXX_ptr helpers by enabling
a default setter when desired. To prevent an API behavioural change (from
clients that already used these helpers and did not want a setter), we add a
"readonly" parameter 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 3 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).

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       |  97 +++------------------------
 hw/acpi/pcihp.c      |   6 +-
 hw/acpi/piix4.c      |  12 ++--
 hw/isa/lpc_ich9.c    |  31 +++------
 hw/misc/edu.c        |  12 +---
 hw/pci-host/q35.c    |  14 +---
 hw/ppc/spapr.c       |  17 +----
 hw/ppc/spapr_drc.c   |   2 +-
 hw/vfio/pci-quirks.c |  18 ++---
 include/qom/object.h |  28 +++++---
 memory.c             |  15 +----
 qom/object.c         | 152 ++++++++++++++++++++++++++++++++++++-------
 target/arm/cpu.c     |  21 +-----
 target/i386/sev.c    | 102 ++---------------------------
 ui/console.c         |   3 +-
 15 files changed, 196 insertions(+), 334 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 18+ messages in thread
* [PATCH 0/4] Improve default object property_add uint helpers
@ 2020-02-03 15:54 Felipe Franciosi
  2020-02-03 15:54 ` [PATCH 2/4] ich9: fix getter type for sci_int property Felipe Franciosi
  0 siblings, 1 reply; 18+ messages in thread
From: Felipe Franciosi @ 2020-02-03 15:54 UTC (permalink / raw)
  To: Marc-Andre Lureau, Phillipe Mathieu-Daude, Stefan Hajnoczi,
	Eduardo Habkost, Markus Armbruster, Alexey Kardashevskiy
  Cc: qemu-devel, Felipe Franciosi

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


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2020-02-03 15:57 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-25 15:36 [PATCH 0/4] Improve default object property_add uint helpers Felipe Franciosi
2019-11-25 15:36 ` [PATCH 1/4] qom/object: enable setter for uint types Felipe Franciosi
2019-11-26  8:40   ` Marc-André Lureau
2019-11-26 12:03     ` Felipe Franciosi
2019-11-26 12:18       ` Marc-André Lureau
2019-11-26 13:41         ` Felipe Franciosi
2019-11-25 15:36 ` [PATCH 2/4] ich9: fix getter type for sci_int property Felipe Franciosi
2019-11-25 16:43   ` Philippe Mathieu-Daudé
2019-11-26  9:55     ` Felipe Franciosi
2019-11-26  8:40   ` Marc-André Lureau
2019-11-25 15:36 ` [PATCH 3/4] ich9: Simplify ich9_lpc_initfn Felipe Franciosi
2019-11-26  8:39   ` Marc-André Lureau
2019-11-25 15:36 ` [PATCH 4/4] qom/object: Use common get/set uint helpers Felipe Franciosi
2019-11-26  8:39   ` Marc-André Lureau
2019-11-26  9:39     ` Felipe Franciosi
2019-11-27 23:58       ` Alexey Kardashevskiy
2019-11-28 16:12         ` Felipe Franciosi
2020-02-03 15:54 [PATCH 0/4] Improve default object property_add " Felipe Franciosi
2020-02-03 15:54 ` [PATCH 2/4] ich9: fix getter type for sci_int property Felipe Franciosi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.