mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
virDomainHostdevSubsysSCSIVHost: 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:
parent
d537f203b9
commit
2630d222ab
@ -6095,24 +6095,17 @@ virDomainHostdevSubsysSCSIVHostDefParseXML(xmlNodePtr sourcenode,
|
|||||||
virDomainHostdevDef *def)
|
virDomainHostdevDef *def)
|
||||||
{
|
{
|
||||||
virDomainHostdevSubsysSCSIVHost *hostsrc = &def->source.subsys.u.scsi_host;
|
virDomainHostdevSubsysSCSIVHost *hostsrc = &def->source.subsys.u.scsi_host;
|
||||||
g_autofree char *protocol = NULL;
|
|
||||||
g_autofree char *wwpn = NULL;
|
g_autofree char *wwpn = NULL;
|
||||||
|
|
||||||
if (!(protocol = virXMLPropString(sourcenode, "protocol"))) {
|
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
if (virXMLPropEnum(sourcenode, "protocol",
|
||||||
_("Missing scsi_host subsystem protocol"));
|
virDomainHostdevSubsysSCSIHostProtocolTypeFromString,
|
||||||
|
VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO,
|
||||||
|
&hostsrc->protocol) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hostsrc->protocol =
|
switch (hostsrc->protocol) {
|
||||||
virDomainHostdevSubsysSCSIHostProtocolTypeFromString(protocol)) <= 0) {
|
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
|
||||||
_("Unknown scsi_host subsystem protocol '%1$s'"),
|
|
||||||
protocol);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ((virDomainHostdevSubsysSCSIHostProtocolType) hostsrc->protocol) {
|
|
||||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_VHOST:
|
case VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_VHOST:
|
||||||
if (!(wwpn = virXMLPropString(sourcenode, "wwpn"))) {
|
if (!(wwpn = virXMLPropString(sourcenode, "wwpn"))) {
|
||||||
virReportError(VIR_ERR_XML_ERROR, "%s",
|
virReportError(VIR_ERR_XML_ERROR, "%s",
|
||||||
|
@ -290,7 +290,7 @@ struct _virDomainHostdevSubsysMediatedDev {
|
|||||||
};
|
};
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_NONE,
|
VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_NONE = 0,
|
||||||
VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_VHOST,
|
VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_VHOST,
|
||||||
|
|
||||||
VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_LAST,
|
VIR_DOMAIN_HOSTDEV_SUBSYS_SCSI_HOST_PROTOCOL_TYPE_LAST,
|
||||||
@ -310,7 +310,7 @@ typedef enum {
|
|||||||
VIR_ENUM_DECL(virDomainHostdevSubsysSCSIVHostModel);
|
VIR_ENUM_DECL(virDomainHostdevSubsysSCSIVHostModel);
|
||||||
|
|
||||||
struct _virDomainHostdevSubsysSCSIVHost {
|
struct _virDomainHostdevSubsysSCSIVHost {
|
||||||
int protocol; /* enum virDomainHostdevSubsysSCSIHostProtocolType */
|
virDomainHostdevSubsysSCSIHostProtocolType protocol;
|
||||||
char *wwpn;
|
char *wwpn;
|
||||||
virDomainHostdevSubsysSCSIVHostModelType model;
|
virDomainHostdevSubsysSCSIVHostModelType model;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user