diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/hw/qdev-core.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h index e70a4bfa49..17f09aac72 100644 --- a/include/hw/qdev-core.h +++ b/include/hw/qdev-core.h @@ -206,6 +206,7 @@ struct BusState { HotplugHandler *hotplug_handler; int max_index; bool realized; + int num_children; QTAILQ_HEAD(, BusChild) children; QLIST_ENTRY(BusState) sibling; }; @@ -280,7 +281,19 @@ DeviceState *qdev_try_create(BusState *bus, const char *name); void qdev_init_nofail(DeviceState *dev); void qdev_set_legacy_instance_id(DeviceState *dev, int alias_id, int required_for_version); +HotplugHandler *qdev_get_bus_hotplug_handler(DeviceState *dev); HotplugHandler *qdev_get_machine_hotplug_handler(DeviceState *dev); +/** + * qdev_get_hotplug_handler: Get handler responsible for device wiring + * + * Find HOTPLUG_HANDLER for @dev that provides [pre|un]plug callbacks for it. + * + * Note: in case @dev has a parent bus, it will be returned as handler unless + * machine handler overrides it. + * + * Returns: pointer to object that implements TYPE_HOTPLUG_HANDLER interface + * or NULL if there aren't any. + */ HotplugHandler *qdev_get_hotplug_handler(DeviceState *dev); void qdev_unplug(DeviceState *dev, Error **errp); void qdev_simple_device_unplug_cb(HotplugHandler *hotplug_dev, |