On Tue, Feb 20, 2024 at 04:06:18PM +0000, Peter Maydell wrote: > Date: Tue, 20 Feb 2024 16:06:18 +0000 > From: Peter Maydell <peter.mayd...@linaro.org> > Subject: [PATCH 06/10] hw/core: Add ResetContainer which holds objects > implementing Resettable > X-Mailer: git-send-email 2.34.1 > > Implement a ResetContainer. This is a subclass of Object, and it > implements the Resettable interface. The container holds a list of > arbitrary other objects which implement Resettable, and when the > container is reset, all the objects it contains are also reset. > > This will allow us to have a 3-phase-reset equivalent of the old > qemu_register_reset() API: we will have a single "simulation reset" > top level ResetContainer, and objects in it are the equivalent of the > old QEMUResetHandler functions. > > The qemu_register_reset() API manages its list of callbacks using a > QTAILQ, but here we use a GPtrArray for our list of Resettable > children: we expect the "remove" operation (which will need to do an > iteration through the list) to be fairly uncommon, and we get simpler > code with fewer memory allocations. > > Since there is currently no listed owner in MAINTAINERS for the > existing reset-related source files, create a new section for > them, and add these new files there also. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > MAINTAINERS | 10 +++++ > include/hw/core/resetcontainer.h | 48 ++++++++++++++++++++ > hw/core/resetcontainer.c | 76 ++++++++++++++++++++++++++++++++ > hw/core/meson.build | 1 + > 4 files changed, 135 insertions(+) > create mode 100644 include/hw/core/resetcontainer.h > create mode 100644 hw/core/resetcontainer.c >
Reviewed-by: Zhao Liu <zhao1....@intel.com>