mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 04:13:53 -06:00
qapi: introduce device-sync-config
Add command to sync config from vhost-user backend to the device. It may be helpful when VHOST_USER_SLAVE_CONFIG_CHANGE_MSG failed or not triggered interrupt to the guest or just not available (not supported by vhost-user server). Command result is racy if allow it during migration. Let's not allow that. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Reviewed-by: Markus Armbruster <armbru@redhat.com> Acked-by: Raphael Norwitz <raphael@enfabrica.net> Message-Id: <20240920094936.450987-4-vsementsov@yandex-team.ru> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
4dfa127314
commit
3f98408e2e
5 changed files with 78 additions and 0 deletions
|
@ -95,6 +95,7 @@ typedef void (*DeviceUnrealize)(DeviceState *dev);
|
|||
typedef void (*DeviceReset)(DeviceState *dev);
|
||||
typedef void (*BusRealize)(BusState *bus, Error **errp);
|
||||
typedef void (*BusUnrealize)(BusState *bus);
|
||||
typedef int (*DeviceSyncConfig)(DeviceState *dev, Error **errp);
|
||||
|
||||
/**
|
||||
* struct DeviceClass - The base class for all devices.
|
||||
|
@ -103,6 +104,9 @@ typedef void (*BusUnrealize)(BusState *bus);
|
|||
* property is changed to %true.
|
||||
* @unrealize: Callback function invoked when the #DeviceState:realized
|
||||
* property is changed to %false.
|
||||
* @sync_config: Callback function invoked when QMP command device-sync-config
|
||||
* is called. Should synchronize device configuration from host to guest part
|
||||
* and notify the guest about the change.
|
||||
* @hotpluggable: indicates if #DeviceClass is hotpluggable, available
|
||||
* as readonly "hotpluggable" property of #DeviceState instance
|
||||
*
|
||||
|
@ -162,6 +166,7 @@ struct DeviceClass {
|
|||
DeviceReset legacy_reset;
|
||||
DeviceRealize realize;
|
||||
DeviceUnrealize unrealize;
|
||||
DeviceSyncConfig sync_config;
|
||||
|
||||
/**
|
||||
* @vmsd: device state serialisation description for
|
||||
|
@ -547,6 +552,7 @@ bool qdev_hotplug_allowed(DeviceState *dev, Error **errp);
|
|||
*/
|
||||
HotplugHandler *qdev_get_hotplug_handler(DeviceState *dev);
|
||||
void qdev_unplug(DeviceState *dev, Error **errp);
|
||||
int qdev_sync_config(DeviceState *dev, Error **errp);
|
||||
void qdev_simple_device_unplug_cb(HotplugHandler *hotplug_dev,
|
||||
DeviceState *dev, Error **errp);
|
||||
void qdev_machine_creation_done(void);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue