Convert the field and adjust the XML parser to use
virXMLPropEnum().
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/conf/domain_conf.c | 18 ++++++------------
src/conf/domain_conf.h | 2 +-
src/qemu/qemu_command.c | 4 ++--
src/qemu/qemu_domain.c | 4 ++--
4 files changed, 11 insertions(+), 17 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 306547e798..ef5f02a23b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6065,20 +6065,14 @@ virDomainHostdevSubsysSCSIDefParseXML(xmlNodePtr sourcenode,
unsigned int flags,
virDomainXMLOption *xmlopt)
{
- g_autofree char *protocol = NULL;
-
- if ((protocol = virXMLPropString(sourcenode, "protocol"))) {
- scsisrc->protocol =
- virDomainHostdevSubsysSCSIProtocolTypeFromString(protocol);
- if (scsisrc->protocol < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("Unknown SCSI subsystem protocol
'%1$s'"),
- protocol);
- return -1;
- }
+ if (virXMLPropEnum(sourcenode, "protocol",
+ virDomainHostdevSubsysSCSIProtocolTypeFromString,
+ VIR_XML_PROP_NONE,
+ &scsisrc->protocol) < 0) {
+ return -1;
}
- switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) {
+ switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
return virDomainHostdevSubsysSCSIHostDefParseXML(sourcenode, ctxt, scsisrc,
flags, xmlopt);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index ca195a52d2..5cce60420f 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -273,7 +273,7 @@ typedef enum {
} virDomainDeviceSGIO;
struct _virDomainHostdevSubsysSCSI {
- int protocol; /* enum virDomainHostdevSCSIProtocolType */
+ virDomainHostdevSCSIProtocolType protocol;
virDomainDeviceSGIO sgio;
virTristateBool rawio;
union {
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index be5814663c..ccbf41a0f7 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -5033,7 +5033,7 @@ qemuBuildHostdevSCSIDetachPrepare(virDomainHostdevDef *hostdev,
virStorageSource *src;
qemuDomainStorageSourcePrivate *srcpriv;
- switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) {
+ switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
src = scsisrc->u.host.src;
break;
@@ -5068,7 +5068,7 @@ qemuBuildHostdevSCSIAttachPrepare(virDomainHostdevDef *hostdev,
g_autoptr(qemuBlockStorageSourceAttachData) ret =
g_new0(qemuBlockStorageSourceAttachData, 1);
virStorageSource *src = NULL;
- switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) {
+ switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
src = scsisrc->u.host.src;
break;
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index e578df624b..069f145d26 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -6008,7 +6008,7 @@
qemuDomainDeviceHostdevDefPostParseRestoreBackendAlias(virDomainHostdevDef *host
hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
return 0;
- switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) {
+ switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
if (!scsisrc->u.host.src)
scsisrc->u.host.src = virStorageSourceNew();
@@ -11373,7 +11373,7 @@ qemuDomainPrepareHostdevSCSI(virDomainHostdevDef *hostdev,
virStorageSource *src = NULL;
g_autofree char *devstr = NULL;
- switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) {
+ switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
virObjectUnref(scsisrc->u.host.src);
scsisrc->u.host.src = virStorageSourceNew();
--
2.41.0