qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/2] cpu: Clarify overloading of reset QOM methods
@ 2019-12-16 15:01 Greg Kurz
  2019-12-16 15:01 ` [PATCH v3 1/2] cpu: Introduce cpu_class_set_parent_reset() Greg Kurz
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Greg Kurz @ 2019-12-16 15:01 UTC (permalink / raw)
  To: Eduardo Habkost
  Cc: Laurent Vivier, Peter Maydell, David Hildenbrand, Cornelia Huck,
	qemu-devel, Alistair Francis, Paolo Bonzini,
	Philippe Mathieu-Daudé, David Gibson

Each cpu subclass overloads the reset method of its parent class with
its own. But since it needs to call the parent method as well, it keeps
a parent_reset pointer to do so. This causes the same not very explicit
boiler plate to be duplicated all around the place:

    pcc->parent_reset = cc->reset;
    cc->reset = ppc_cpu_reset;

A similar concern was addressed some time back by Philippe Mathieu-Daudé
in qdev, with the addition of device_class_set_parent_reset() and friends:

https://git.qemu.org/?p=qemu.git;a=commit;h=46795cf2e2f6
https://git.qemu.org/?p=qemu.git;a=commit;h=bf853881690d

Follow the same approach with cpus.

Changes in v3:
- drop 'cpu: Introduce CPUReset callback typedef' patch which isn't needed
  and makes the code less clear. This changes the declaration of the helper
  in 'cpu: Introduce cpu_class_set_parent_reset()', but it is minor so I
  keep the Reviewed-by and Acked-by tags.

Changes in v2:
- added Reviewed-by and Acked-by tags
- rebased on top of https://github.com/cohuck/qemu.git s390-next
  SHA1 dd6252f035a2

--
Greg

---

Greg Kurz (2):
      cpu: Introduce cpu_class_set_parent_reset()
      cpu: Use cpu_class_set_parent_reset()


 hw/core/cpu.c                   |    8 ++++++++
 include/hw/core/cpu.h           |    4 ++++
 target/arm/cpu.c                |    3 +--
 target/cris/cpu.c               |    3 +--
 target/i386/cpu.c               |    3 +--
 target/lm32/cpu.c               |    3 +--
 target/m68k/cpu.c               |    3 +--
 target/microblaze/cpu.c         |    3 +--
 target/mips/cpu.c               |    3 +--
 target/moxie/cpu.c              |    3 +--
 target/nios2/cpu.c              |    3 +--
 target/openrisc/cpu.c           |    3 +--
 target/ppc/translate_init.inc.c |    3 +--
 target/riscv/cpu.c              |    3 +--
 target/s390x/cpu.c              |    3 +--
 target/sh4/cpu.c                |    3 +--
 target/sparc/cpu.c              |    3 +--
 target/tilegx/cpu.c             |    3 +--
 target/tricore/cpu.c            |    3 +--
 target/xtensa/cpu.c             |    3 +--
 20 files changed, 30 insertions(+), 36 deletions(-)



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

end of thread, other threads:[~2020-01-18 19:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-16 15:01 [PATCH v3 0/2] cpu: Clarify overloading of reset QOM methods Greg Kurz
2019-12-16 15:01 ` [PATCH v3 1/2] cpu: Introduce cpu_class_set_parent_reset() Greg Kurz
2019-12-16 15:35   ` Philippe Mathieu-Daudé
2019-12-16 15:01 ` [PATCH v3 2/2] cpu: Use cpu_class_set_parent_reset() Greg Kurz
2020-01-18 19:22 ` [PATCH v3 0/2] cpu: Clarify overloading of reset QOM methods Paolo Bonzini

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).