[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v3 05/33] Switch to new api in qdev/bus
From: |
Damien Hedde |
Subject: |
[Qemu-ppc] [PATCH v3 05/33] Switch to new api in qdev/bus |
Date: |
Mon, 29 Jul 2019 16:56:26 +0200 |
Deprecate old reset apis and make them use the new one while they
are still used somewhere.
Signed-off-by: Damien Hedde <address@hidden>
---
hw/core/qdev.c | 22 +++-------------------
include/hw/qdev-core.h | 28 ++++++++++++++++++++++------
2 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 559ced070d..e9e5f2d5f9 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -312,25 +312,9 @@ static void device_foreach_reset_child(Object *obj, void
(*func)(Object *))
}
}
-static int qdev_reset_one(DeviceState *dev, void *opaque)
-{
- device_legacy_reset(dev);
-
- return 0;
-}
-
-static int qbus_reset_one(BusState *bus, void *opaque)
-{
- BusClass *bc = BUS_GET_CLASS(bus);
- if (bc->reset) {
- bc->reset(bus);
- }
- return 0;
-}
-
void qdev_reset_all(DeviceState *dev)
{
- qdev_walk_children(dev, NULL, NULL, qdev_reset_one, qbus_reset_one, NULL);
+ device_reset(dev, false);
}
void qdev_reset_all_fn(void *opaque)
@@ -340,7 +324,7 @@ void qdev_reset_all_fn(void *opaque)
void qbus_reset_all(BusState *bus)
{
- qbus_walk_children(bus, NULL, NULL, qdev_reset_one, qbus_reset_one, NULL);
+ bus_reset(bus, false);
}
void qbus_reset_all_fn(void *opaque)
@@ -922,7 +906,7 @@ static void device_set_realized(Object *obj, bool value,
Error **errp)
}
}
if (dev->hotplugged) {
- device_legacy_reset(dev);
+ device_reset(dev, true);
}
dev->pending_deleted_event = false;
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index eeb75611c8..1670ae41bb 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -109,6 +109,11 @@ typedef struct DeviceClass {
bool hotpluggable;
/* callbacks */
+ /*
+ * Reset method here is deprecated and replaced by methods in the
+ * resettable class interface to implement a multi-phase reset.
+ * TODO: remove once every reset callback is unused
+ */
DeviceReset reset;
DeviceRealize realize;
DeviceUnrealize unrealize;
@@ -455,19 +460,22 @@ bool bus_is_resetting(BusState *bus);
*/
bool bus_is_reset_cold(BusState *bus);
-void qdev_reset_all(DeviceState *dev);
-void qdev_reset_all_fn(void *opaque);
-
/**
- * @qbus_reset_all:
- * @bus: Bus to be reset.
+ * qbus/qdev_reset_all:
+ * @bus/dev: Bus/Device to be reset.
*
- * Reset @bus and perform a bus-level ("hard") reset of all devices connected
+ * Reset @bus/dev and perform a bus-level reset of all devices/buses connected
* to it, including recursive processing of all buses below @bus itself. A
* hard reset means that qbus_reset_all will reset all state of the device.
* For PCI devices, for example, this will include the base address registers
* or configuration space.
+ *
+ * Theses functions are deprecated, please use device/bus_reset or
+ * resettable_reset_* instead
+ * TODO: remove them when all occurence are removed
*/
+void qdev_reset_all(DeviceState *dev);
+void qdev_reset_all_fn(void *opaque);
void qbus_reset_all(BusState *bus);
void qbus_reset_all_fn(void *opaque);
@@ -489,9 +497,17 @@ void qdev_machine_init(void);
* device_legacy_reset:
*
* Reset a single device (by calling the reset method).
+ *
+ * This function is deprecated, please use device_reset() instead.
+ * TODO: remove the function when all occurences are removed.
*/
void device_legacy_reset(DeviceState *dev);
+/**
+ * device_class_set_parent_reset:
+ * TODO: remove the function when DeviceClass's reset method
+ * is not used anymore.
+ */
void device_class_set_parent_reset(DeviceClass *dc,
DeviceReset dev_reset,
DeviceReset *parent_reset);
--
2.22.0
- Re: [Qemu-ppc] [PATCH v3 06/33] add the vmstate description for device reset state, (continued)
- [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Damien Hedde, 2019/07/29
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Cornelia Huck, 2019/07/30
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Peter Maydell, 2019/07/30
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Cornelia Huck, 2019/07/30
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Peter Maydell, 2019/07/30
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Damien Hedde, 2019/07/30
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, Cornelia Huck, 2019/07/30
- Re: [Qemu-ppc] [PATCH v3 01/33] Create Resettable QOM interface, David Gibson, 2019/07/31
- Re: [Qemu-ppc] [Qemu-devel] [PATCH v3 01/33] Create Resettable QOM interface, Christophe de Dinechin, 2019/07/31
[Qemu-ppc] [PATCH v3 05/33] Switch to new api in qdev/bus,
Damien Hedde <=
[Qemu-ppc] [PATCH v3 10/33] vl.c: remove qbus_reset_all registration, Damien Hedde, 2019/07/29
[Qemu-ppc] [PATCH v3 03/33] Replace all call to device_reset by call to device_legacy_reset, Damien Hedde, 2019/07/29
[Qemu-ppc] [PATCH v3 12/33] hw/pci/: remove qdev/qbus_reset_all call, Damien Hedde, 2019/07/29
[Qemu-ppc] [PATCH v3 18/33] hw/audio/intel-hda.c: remove device_legacy_reset call, Damien Hedde, 2019/07/29
[Qemu-ppc] [PATCH v3 16/33] hw/input/adb.c: remove qdev_reset_all call, Damien Hedde, 2019/07/29
[Qemu-ppc] [PATCH v3 14/33] hw/s390x/s390-virtio-ccw.c: remove qdev_reset_all call, Damien Hedde, 2019/07/29