qdev: add qdev_build_hotpluggable_device_list helper
For peripheral device del completion, add a function to build a list for hotpluggable devices. Signed-off-by: Zhu Guihua <zhugh.fnst@cn.fujitsu.com> Reviewed-by: Marcel Apfelbaum <marcel.a@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
f3582ba41c
commit
66e56b13ad
|
@ -866,6 +866,19 @@ void qdev_alias_all_properties(DeviceState *target, Object *source)
|
||||||
} while (class != object_class_by_name(TYPE_DEVICE));
|
} while (class != object_class_by_name(TYPE_DEVICE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int qdev_build_hotpluggable_device_list(Object *obj, void *opaque)
|
||||||
|
{
|
||||||
|
GSList **list = opaque;
|
||||||
|
DeviceState *dev = DEVICE(obj);
|
||||||
|
|
||||||
|
if (dev->realized && object_property_get_bool(obj, "hotpluggable", NULL)) {
|
||||||
|
*list = g_slist_append(*list, dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
object_child_foreach(obj, qdev_build_hotpluggable_device_list, opaque);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static bool device_get_realized(Object *obj, Error **errp)
|
static bool device_get_realized(Object *obj, Error **errp)
|
||||||
{
|
{
|
||||||
DeviceState *dev = DEVICE(obj);
|
DeviceState *dev = DEVICE(obj);
|
||||||
|
|
|
@ -360,6 +360,8 @@ extern int qdev_hotplug;
|
||||||
|
|
||||||
char *qdev_get_dev_path(DeviceState *dev);
|
char *qdev_get_dev_path(DeviceState *dev);
|
||||||
|
|
||||||
|
int qdev_build_hotpluggable_device_list(Object *obj, void *opaque);
|
||||||
|
|
||||||
void qbus_set_hotplug_handler(BusState *bus, DeviceState *handler,
|
void qbus_set_hotplug_handler(BusState *bus, DeviceState *handler,
|
||||||
Error **errp);
|
Error **errp);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue