virDomainHostdevSubsysSCSI: Convert 'protocol' field to proper enum type

Convert the field and adjust the XML parser to use
virXMLPropEnum().

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2023-09-13 14:39:00 +02:00
parent f7534c2573
commit d537f203b9
4 changed files with 11 additions and 17 deletions

View File

@ -6065,20 +6065,14 @@ virDomainHostdevSubsysSCSIDefParseXML(xmlNodePtr sourcenode,
unsigned int flags, unsigned int flags,
virDomainXMLOption *xmlopt) virDomainXMLOption *xmlopt)
{ {
g_autofree char *protocol = NULL; if (virXMLPropEnum(sourcenode, "protocol",
virDomainHostdevSubsysSCSIProtocolTypeFromString,
if ((protocol = virXMLPropString(sourcenode, "protocol"))) { VIR_XML_PROP_NONE,
scsisrc->protocol = &scsisrc->protocol) < 0) {
virDomainHostdevSubsysSCSIProtocolTypeFromString(protocol); return -1;
if (scsisrc->protocol < 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Unknown SCSI subsystem protocol '%1$s'"),
protocol);
return -1;
}
} }
switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
return virDomainHostdevSubsysSCSIHostDefParseXML(sourcenode, ctxt, scsisrc, return virDomainHostdevSubsysSCSIHostDefParseXML(sourcenode, ctxt, scsisrc,
flags, xmlopt); flags, xmlopt);

View File

@ -273,7 +273,7 @@ typedef enum {
} virDomainDeviceSGIO; } virDomainDeviceSGIO;
struct _virDomainHostdevSubsysSCSI { struct _virDomainHostdevSubsysSCSI {
int protocol; /* enum virDomainHostdevSCSIProtocolType */ virDomainHostdevSCSIProtocolType protocol;
virDomainDeviceSGIO sgio; virDomainDeviceSGIO sgio;
virTristateBool rawio; virTristateBool rawio;
union { union {

View File

@ -5033,7 +5033,7 @@ qemuBuildHostdevSCSIDetachPrepare(virDomainHostdevDef *hostdev,
virStorageSource *src; virStorageSource *src;
qemuDomainStorageSourcePrivate *srcpriv; qemuDomainStorageSourcePrivate *srcpriv;
switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
src = scsisrc->u.host.src; src = scsisrc->u.host.src;
break; break;
@ -5068,7 +5068,7 @@ qemuBuildHostdevSCSIAttachPrepare(virDomainHostdevDef *hostdev,
g_autoptr(qemuBlockStorageSourceAttachData) ret = g_new0(qemuBlockStorageSourceAttachData, 1); g_autoptr(qemuBlockStorageSourceAttachData) ret = g_new0(qemuBlockStorageSourceAttachData, 1);
virStorageSource *src = NULL; virStorageSource *src = NULL;
switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
src = scsisrc->u.host.src; src = scsisrc->u.host.src;
break; break;

View File

@ -6008,7 +6008,7 @@ qemuDomainDeviceHostdevDefPostParseRestoreBackendAlias(virDomainHostdevDef *host
hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI) hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI)
return 0; return 0;
switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
if (!scsisrc->u.host.src) if (!scsisrc->u.host.src)
scsisrc->u.host.src = virStorageSourceNew(); scsisrc->u.host.src = virStorageSourceNew();
@ -11373,7 +11373,7 @@ qemuDomainPrepareHostdevSCSI(virDomainHostdevDef *hostdev,
virStorageSource *src = NULL; virStorageSource *src = NULL;
g_autofree char *devstr = NULL; g_autofree char *devstr = NULL;
switch ((virDomainHostdevSCSIProtocolType) scsisrc->protocol) { switch (scsisrc->protocol) {
case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE: case VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_NONE:
virObjectUnref(scsisrc->u.host.src); virObjectUnref(scsisrc->u.host.src);
scsisrc->u.host.src = virStorageSourceNew(); scsisrc->u.host.src = virStorageSourceNew();