mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
virDomainHostdevDef: Convert 'mode' field to proper enum type
Convert the field, adjust the XML parser to use virXMLPropEnumDefault() and fill in missing cases to switch() statements. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
2630d222ab
commit
7bdab79e40
@ -351,7 +351,7 @@ virDomainAuditHostdev(virDomainObj *vm, virDomainHostdevDef *hostdev,
|
||||
return;
|
||||
}
|
||||
|
||||
switch ((virDomainHostdevMode) hostdev->mode) {
|
||||
switch (hostdev->mode) {
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
|
||||
switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) {
|
||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
|
||||
|
@ -2648,6 +2648,8 @@ virDomainHostdevDefClear(virDomainHostdevDef *def)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -12917,7 +12919,6 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xmlopt,
|
||||
{
|
||||
virDomainHostdevDef *def;
|
||||
VIR_XPATH_NODE_AUTORESTORE(ctxt)
|
||||
g_autofree char *mode = virXMLPropString(node, "mode");
|
||||
g_autofree char *type = virXMLPropString(node, "type");
|
||||
|
||||
ctxt->node = node;
|
||||
@ -12925,15 +12926,11 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xmlopt,
|
||||
if (!(def = virDomainHostdevDefNew()))
|
||||
goto error;
|
||||
|
||||
if (mode) {
|
||||
if ((def->mode = virDomainHostdevModeTypeFromString(mode)) < 0) {
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("unknown hostdev mode '%1$s'"), mode);
|
||||
goto error;
|
||||
}
|
||||
} else {
|
||||
def->mode = VIR_DOMAIN_HOSTDEV_MODE_SUBSYS;
|
||||
}
|
||||
if (virXMLPropEnumDefault(node, "mode", virDomainHostdevModeTypeFromString,
|
||||
VIR_XML_PROP_NONE,
|
||||
&def->mode,
|
||||
VIR_DOMAIN_HOSTDEV_MODE_SUBSYS) < 0)
|
||||
goto error;
|
||||
|
||||
switch (def->mode) {
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
|
||||
@ -12947,6 +12944,7 @@ virDomainHostdevDefParseXML(virDomainXMLOption *xmlopt,
|
||||
goto error;
|
||||
break;
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("Unexpected hostdev mode %1$d"), def->mode);
|
||||
goto error;
|
||||
@ -14182,6 +14180,8 @@ virDomainHostdevMatch(virDomainHostdevDef *a,
|
||||
return virDomainHostdevMatchSubsys(a, b);
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES:
|
||||
return virDomainHostdevMatchCaps(a, b);
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -26087,6 +26087,7 @@ virDomainHostdevDefFormat(virBuffer *buf,
|
||||
}
|
||||
break;
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
virReportError(VIR_ERR_INTERNAL_ERROR,
|
||||
_("unexpected hostdev mode %1$d"), def->mode);
|
||||
return -1;
|
||||
@ -26139,6 +26140,8 @@ virDomainHostdevDefFormat(virBuffer *buf,
|
||||
if (virDomainHostdevDefFormatCaps(buf, def) < 0)
|
||||
return -1;
|
||||
break;
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
break;
|
||||
}
|
||||
|
||||
virDomainNetTeamingInfoFormat(def->teaming, buf);
|
||||
|
@ -371,7 +371,7 @@ struct _virDomainHostdevDef {
|
||||
*/
|
||||
virDomainNetDef *parentnet;
|
||||
|
||||
int mode; /* enum virDomainHostdevMode */
|
||||
virDomainHostdevMode mode;
|
||||
virDomainStartupPolicy startupPolicy;
|
||||
bool managed;
|
||||
bool missing;
|
||||
|
@ -313,6 +313,7 @@ static int virLXCCgroupSetupDeviceACL(virDomainDef *def,
|
||||
break;
|
||||
}
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1837,6 +1837,7 @@ virLXCControllerSetupAllHostdevs(virLXCController *ctrl)
|
||||
return -1;
|
||||
break;
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Unsupported host device mode %1$s"),
|
||||
virDomainHostdevModeTypeToString(def->mode));
|
||||
|
@ -3905,6 +3905,7 @@ lxcDomainAttachDeviceHostdevLive(virLXCDriver *driver,
|
||||
return lxcDomainAttachDeviceHostdevCapsLive(driver, vm, dev);
|
||||
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Unsupported host device mode %1$s"),
|
||||
virDomainHostdevModeTypeToString(dev->data.hostdev->mode));
|
||||
@ -4328,6 +4329,7 @@ lxcDomainDetachDeviceHostdevLive(virLXCDriver *driver,
|
||||
return lxcDomainDetachDeviceHostdevCapsLive(vm, dev);
|
||||
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Unsupported host device mode %1$s"),
|
||||
virDomainHostdevModeTypeToString(dev->data.hostdev->mode));
|
||||
|
@ -100,6 +100,7 @@ int virLXCPrepareHostDevices(virLXCDriver *driver,
|
||||
|
||||
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||
_("Unsupported hostdev mode %1$s"),
|
||||
virDomainHostdevModeTypeToString(dev->mode));
|
||||
|
@ -10678,7 +10678,7 @@ qemuDomainGetHostdevPath(virDomainHostdevDef *dev,
|
||||
g_autofree char *tmpPath = NULL;
|
||||
int perm = 0;
|
||||
|
||||
switch ((virDomainHostdevMode) dev->mode) {
|
||||
switch (dev->mode) {
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
|
||||
switch ((virDomainHostdevSubsysType)dev->source.subsys.type) {
|
||||
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
|
||||
|
@ -1280,7 +1280,7 @@ qemuMigrationSrcIsAllowedHostdev(const virDomainDef *def)
|
||||
* forbidden. */
|
||||
for (i = 0; i < def->nhostdevs; i++) {
|
||||
virDomainHostdevDef *hostdev = def->hostdevs[i];
|
||||
switch ((virDomainHostdevMode)hostdev->mode) {
|
||||
switch (hostdev->mode) {
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_CAPABILITIES:
|
||||
virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
|
||||
_("cannot migrate a domain with <hostdev mode='capabilities'>"));
|
||||
|
@ -2345,6 +2345,7 @@ virSecuritySELinuxSetHostdevLabel(virSecurityManager *mgr,
|
||||
return virSecuritySELinuxSetHostdevCapsLabel(mgr, def, dev, vroot);
|
||||
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -2567,6 +2568,7 @@ virSecuritySELinuxRestoreHostdevLabel(virSecurityManager *mgr,
|
||||
return virSecuritySELinuxRestoreHostdevCapsLabel(mgr, dev, vroot);
|
||||
|
||||
default:
|
||||
case VIR_DOMAIN_HOSTDEV_MODE_LAST:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user