This is similar to the existing virDomainDefHasUSBControllers()
function, except that it looks for USB devices in the domain
definition instead.
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
src/conf/domain_conf.c | 27 +++++++++++++++++++++++++++
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 1 +
3 files changed, 29 insertions(+)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index e7fa4cd769..61a3280e9e 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5427,6 +5427,33 @@ virDomainDefHasUSBControllers(const virDomainDef *def)
}
+static int
+virDomainDefHasUSBDevicesIter(virDomainDeviceInfo *info G_GNUC_UNUSED,
+ void *opaque)
+{
+ bool *found = (bool *) opaque;
+
+ *found = true;
+
+ return 0;
+}
+
+
+bool
+virDomainDefHasUSBDevices(const virDomainDef *def)
+{
+ bool found = false;
+
+ if (virDomainUSBDeviceDefForeach((virDomainDef *) def,
+ virDomainDefHasUSBDevicesIter,
+ &found, false) < 0) {
+ return false;
+ }
+
+ return found;
+}
+
+
bool
virDomainDefLifecycleActionAllowed(virDomainLifecycle type,
virDomainLifecycleAction action)
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index a2684ea78d..448361ab95 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -3683,6 +3683,7 @@ virDomainSCSIDriveAddressIsUsed(const virDomainDef *def,
const virDomainDeviceDriveAddress *addr);
bool virDomainDefHasUSBControllers(const virDomainDef *def);
+bool virDomainDefHasUSBDevices(const virDomainDef *def);
bool virDomainDeviceAliasIsUserAlias(const char *aliasStr);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 3fc97bd124..ce93a13216 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -350,6 +350,7 @@ virDomainDefHasOldStyleUEFI;
virDomainDefHasPCIHostdev;
virDomainDefHasTimer;
virDomainDefHasUSBControllers;
+virDomainDefHasUSBDevices;
virDomainDefHasVcpusOffline;
virDomainDefHasVDPANet;
virDomainDefIDsParseString;
--
2.52.0