From: Marc-André Lureau <marcandre.lureau(a)redhat.com>
Generalize the function, broaden its potential usage.
Signed-off-by: Marc-André Lureau <marcandre.lureau(a)redhat.com>
---
src/conf/domain_conf.c | 15 ++++++++++++---
src/conf/domain_conf.h | 2 +-
src/libvirt_private.syms | 2 +-
src/qemu/qemu_validate.c | 4 ++--
4 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 35dbb13106..78878a9685 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -31747,15 +31747,24 @@ virDomainObjGetMessages(virDomainObj *vm,
return rv;
}
+
+/**
+ * virDomainDefHasGraphics:
+ * @def: domain definition
+ * @type: a graphics type
+ *
+ * Returns true if domain has a graphics of given type.
+ */
bool
-virDomainDefHasSpiceGraphics(const virDomainDef *def)
+virDomainDefHasGraphics(const virDomainDef *def, virDomainGraphicsType type)
{
size_t i = 0;
for (i = 0; i < def->ngraphics; i++) {
- if (def->graphics[i]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
+ virDomainGraphicsDef *graphics = def->graphics[i];
+
+ if (graphics->type == type)
return true;
- }
}
return false;
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index e5c2c2157c..b08e2549b7 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -4596,4 +4596,4 @@ virDomainObjGetMessages(virDomainObj *vm,
unsigned int flags);
bool
-virDomainDefHasSpiceGraphics(const virDomainDef *def);
+virDomainDefHasGraphics(const virDomainDef *def, virDomainGraphicsType type);
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 2fe0a07944..987947975b 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -337,6 +337,7 @@ virDomainDefGetVcpus;
virDomainDefGetVcpusMax;
virDomainDefGetVcpusTopology;
virDomainDefHasDeviceAddress;
+virDomainDefHasGraphics;
virDomainDefHasManagedPR;
virDomainDefHasMdevHostdev;
virDomainDefHasMemballoon;
@@ -345,7 +346,6 @@ virDomainDefHasNVMeDisk;
virDomainDefHasOldStyleROUEFI;
virDomainDefHasOldStyleUEFI;
virDomainDefHasPCIHostdev;
-virDomainDefHasSpiceGraphics;
virDomainDefHasUSB;
virDomainDefHasVcpusOffline;
virDomainDefHasVDPANet;
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 07a505d106..54226b8c62 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -2097,7 +2097,7 @@ qemuValidateDomainChrSourceDef(const virDomainChrSourceDef *def,
case VIR_DOMAIN_CHR_TYPE_SPICEVMC:
case VIR_DOMAIN_CHR_TYPE_SPICEPORT:
- if (!virDomainDefHasSpiceGraphics(vmdef)) {
+ if (!virDomainDefHasGraphics(vmdef, VIR_DOMAIN_GRAPHICS_TYPE_SPICE)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("chardev '%1$s' not supported without spice
graphics"),
virDomainChrTypeToString(def->type));
@@ -4656,7 +4656,7 @@ qemuValidateDomainDeviceDefAudio(virDomainAudioDef *audio,
break;
case VIR_DOMAIN_AUDIO_TYPE_SPICE:
- if (!virDomainDefHasSpiceGraphics(def)) {
+ if (!virDomainDefHasGraphics(def, VIR_DOMAIN_GRAPHICS_TYPE_SPICE)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Spice audio is not supported without spice
graphics"));
return -1;
--
2.47.0