[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 22/47] qdev: Add wrapper to set BUS as HotplugHandler
From: |
Andreas Färber |
Subject: |
[Qemu-devel] [PULL 22/47] qdev: Add wrapper to set BUS as HotplugHandler |
Date: |
Wed, 15 Oct 2014 05:08:56 +0200 |
From: Igor Mammedov <address@hidden>
To be used for conversion of SCSI and USB devices,
and would allow to make every HBA/USB host switch
to HotplugHandler API without touching each controller
explicitly.
Signed-off-by: Igor Mammedov <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Andreas Färber <address@hidden>
---
hw/core/qdev.c | 19 +++++++++++++++++++
include/hw/qdev-core.h | 11 ++++-------
2 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 9f18520..b1da409 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -112,6 +112,25 @@ void qdev_set_parent_bus(DeviceState *dev, BusState *bus)
bus_add_child(bus, dev);
}
+static void qbus_set_hotplug_handler_internal(BusState *bus, Object *handler,
+ Error **errp)
+{
+
+ object_property_set_link(OBJECT(bus), OBJECT(handler),
+ QDEV_HOTPLUG_HANDLER_PROPERTY, errp);
+ bus->allow_hotplug = 1;
+}
+
+void qbus_set_hotplug_handler(BusState *bus, DeviceState *handler, Error
**errp)
+{
+ qbus_set_hotplug_handler_internal(bus, OBJECT(handler), errp);
+}
+
+void qbus_set_bus_hotplug_handler(BusState *bus, Error **errp)
+{
+ qbus_set_hotplug_handler_internal(bus, OBJECT(bus), errp);
+}
+
/* Create a new device. This only initializes the device state structure
and allows properties to be set. qdev_init should be called to
initialize the actual device emulation. */
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h
index ba812c5..48e9579 100644
--- a/include/hw/qdev-core.h
+++ b/include/hw/qdev-core.h
@@ -363,13 +363,10 @@ extern int qdev_hotplug;
char *qdev_get_dev_path(DeviceState *dev);
-static inline void qbus_set_hotplug_handler(BusState *bus, DeviceState
*handler,
- Error **errp)
-{
- object_property_set_link(OBJECT(bus), OBJECT(handler),
- QDEV_HOTPLUG_HANDLER_PROPERTY, errp);
- bus->allow_hotplug = 1;
-}
+void qbus_set_hotplug_handler(BusState *bus, DeviceState *handler,
+ Error **errp);
+
+void qbus_set_bus_hotplug_handler(BusState *bus, Error **errp);
static inline bool qbus_is_hotpluggable(BusState *bus)
{
--
1.8.4.5
- [Qemu-devel] [PULL 16/47] tests: usb: usb-uas hotplug test, (continued)
- [Qemu-devel] [PULL 16/47] tests: usb: usb-uas hotplug test, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 12/47] tests: usb: Move uhci port test code to libqos/usb.c, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 19/47] qdev: HotplugHandler: Rename unplug callback to unplug_request, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 14/47] tests: usb: Generic usb device hotplug, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 20/47] qdev: HotplugHandler: Provide unplug callback, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 15/47] tests: usb: usb-storage hotplug test, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 21/47] qdev: Add simple/generic unplug callback for HotplugHandler, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 17/47] Access BusState::allow_hotplug using wraper qbus_is_hotpluggable(), Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 18/47] qdev: do not allow to instantiate non hotpluggable device with device_add, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 23/47] qdev: Drop hotplug check from bus_add_child(), Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 22/47] qdev: Add wrapper to set BUS as HotplugHandler,
Andreas Färber <=
- [Qemu-devel] [PULL 24/47] target-i386: ICC bus: Drop BusState::allow_hotplug, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 25/47] virtio-pci: Drop BusState::allow_hotplug, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 27/47] virtio-mmio: Drop useless bus->allow_hotplug = 0, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 29/47] s390x: Convert s390-virtio to hotplug handler API, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 31/47] scsi: Set SCSI BUS itself as default HotplugHandler, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 30/47] s390x: Convert virtio-ccw to hotplug handler API, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 34/47] scsi: Cleanup not used anymore SCSIBusInfo{hotplug, hot_unplug} fields, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 32/47] scsi: Convert pvscsi HBA to hotplug handler API, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 28/47] s390x: Drop not used allow_hotplug in event-facility, Andreas Färber, 2014/10/14
- [Qemu-devel] [PULL 26/47] virtio-serial: Convert to hotplug-handler API, Andreas Färber, 2014/10/14