};
struct virQEMUCapsStringFlags virQEMUCapsEvents[] = {
- { "DEVICE_DELETED", QEMU_CAPS_DEVICE_DEL_EVENT },
{ "MIGRATION", QEMU_CAPS_MIGRATION_EVENT },
{ "VSERPORT_CHANGE", QEMU_CAPS_VSERPORT_CHANGE },
{ "DEVICE_TRAY_MOVED", QEMU_CAPS_DEVICE_TRAY_MOVED },
/* 150 */
X_QEMU_CAPS_VNC_SHARE_POLICY, /* set display sharing policy */
- QEMU_CAPS_DEVICE_DEL_EVENT, /* DEVICE_DELETED event */
+ X_QEMU_CAPS_DEVICE_DEL_EVENT, /* DEVICE_DELETED event */
QEMU_CAPS_DEVICE_DMI_TO_PCI_BRIDGE, /* -device i82801b11-bridge */
QEMU_CAPS_I440FX_PCI_HOLE64_SIZE, /* i440FX-pcihost.pci-hole64-size */
QEMU_CAPS_Q35_PCI_HOLE64_SIZE, /* q35-pcihost.pci-hole64-size */
char **aliases;
int rc;
- if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT))
- return 0;
-
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
return -1;
rc = qemuMonitorGetDeviceAliases(priv->mon, &aliases);
memset(&priv->unplug, 0, sizeof(priv->unplug));
- if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT))
- return;
-
priv->unplug.alias = alias;
}
/* Returns:
* -1 Unplug of the device failed
*
- * 0 DEVICE_DELETED event is supported and removal of the device did not
- * finish in qemuDomainRemoveDeviceWaitTime
+ * 0 removal of the device did not finish in qemuDomainRemoveDeviceWaitTime
*
* 1 when the caller is responsible for finishing the device removal:
- * - DEVICE_DELETED event is unsupported
* - DEVICE_DELETED event arrived before the timeout time
* - we failed to reliably wait for the event and thus use fallback behavior
*/
unsigned long long until;
int rc;
- if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT))
- return 1;
-
if (virTimeMillisNow(&until) < 0)
return 1;
until += qemuDomainRemoveDeviceWaitTime;
char **tmp;
int ret = -1;
- if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT))
- return 0;
-
old = priv->qemuDevices;
priv->qemuDevices = NULL;
if (qemuDomainUpdateDeviceList(driver, vm, QEMU_ASYNC_JOB_NONE) < 0)
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='vfio-pci'/>
<flag name='mem-merge'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='virtio-mmio'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='boot-strict'/>
<flag name='msg-timestamp'/>
<flag name='active-commit'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='ich9-intel-hda'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='usb-storage'/>
<flag name='usb-storage.removable'/>
<flag name='virtio-mmio'/>
<flag name='mem-merge'/>
<flag name='drive-discard'/>
<flag name='mlock'/>
- <flag name='device-del-event'/>
<flag name='dmi-to-pci-bridge'/>
<flag name='i440fx-pci-hole64-size'/>
<flag name='q35-pci-hole64-size'/>
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_IVSHMEM_PLAIN);
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_IVSHMEM_DOORBELL);
virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_DISK_WWN);
- virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_DEL_EVENT);
if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0)
goto cleanup;