mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
conf: Rework virDomainDeviceDefPostParseCommon()
Now that we've moved all the actual code into helper functions, we can turn it into a switch statement. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
48dbd70e39
commit
0624ac3fa8
@ -4966,33 +4966,72 @@ virDomainDeviceDefPostParseCommon(virDomainDeviceDefPtr dev,
|
|||||||
unsigned int parseFlags ATTRIBUTE_UNUSED,
|
unsigned int parseFlags ATTRIBUTE_UNUSED,
|
||||||
virDomainXMLOptionPtr xmlopt)
|
virDomainXMLOptionPtr xmlopt)
|
||||||
{
|
{
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_CHR)
|
int ret = -1;
|
||||||
return virDomainChrDefPostParse(dev->data.chr, def);
|
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_RNG)
|
switch ((virDomainDeviceType)dev->type) {
|
||||||
return virDomainRNGDefPostParse(dev->data.rng);
|
case VIR_DOMAIN_DEVICE_CHR:
|
||||||
|
ret = virDomainChrDefPostParse(dev->data.chr, def);
|
||||||
|
break;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_DISK)
|
case VIR_DOMAIN_DEVICE_RNG:
|
||||||
return virDomainDiskDefPostParse(dev->data.disk, def, xmlopt);
|
ret = virDomainRNGDefPostParse(dev->data.rng);
|
||||||
|
break;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_VIDEO)
|
case VIR_DOMAIN_DEVICE_DISK:
|
||||||
return virDomainVideoDefPostParse(dev->data.video, def);
|
ret = virDomainDiskDefPostParse(dev->data.disk, def, xmlopt);
|
||||||
|
break;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV &&
|
case VIR_DOMAIN_DEVICE_VIDEO:
|
||||||
virDomainHostdevDefPostParse(dev->data.hostdev, def, xmlopt) < 0)
|
ret = virDomainVideoDefPostParse(dev->data.video, def);
|
||||||
return -1;
|
break;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_CONTROLLER)
|
case VIR_DOMAIN_DEVICE_HOSTDEV:
|
||||||
return virDomainControllerDefPostParse(dev->data.controller);
|
ret = virDomainHostdevDefPostParse(dev->data.hostdev, def, xmlopt);
|
||||||
|
break;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_NET)
|
case VIR_DOMAIN_DEVICE_CONTROLLER:
|
||||||
return virDomainNetDefPostParse(dev->data.net);
|
ret = virDomainControllerDefPostParse(dev->data.controller);
|
||||||
|
break;
|
||||||
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_VSOCK &&
|
case VIR_DOMAIN_DEVICE_NET:
|
||||||
virDomainVsockDefPostParse(dev->data.vsock) < 0)
|
ret = virDomainNetDefPostParse(dev->data.net);
|
||||||
return -1;
|
break;
|
||||||
|
|
||||||
return 0;
|
case VIR_DOMAIN_DEVICE_VSOCK:
|
||||||
|
ret = virDomainVsockDefPostParse(dev->data.vsock);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIR_DOMAIN_DEVICE_LEASE:
|
||||||
|
case VIR_DOMAIN_DEVICE_FS:
|
||||||
|
case VIR_DOMAIN_DEVICE_INPUT:
|
||||||
|
case VIR_DOMAIN_DEVICE_SOUND:
|
||||||
|
case VIR_DOMAIN_DEVICE_WATCHDOG:
|
||||||
|
case VIR_DOMAIN_DEVICE_GRAPHICS:
|
||||||
|
case VIR_DOMAIN_DEVICE_HUB:
|
||||||
|
case VIR_DOMAIN_DEVICE_REDIRDEV:
|
||||||
|
case VIR_DOMAIN_DEVICE_SMARTCARD:
|
||||||
|
case VIR_DOMAIN_DEVICE_MEMBALLOON:
|
||||||
|
case VIR_DOMAIN_DEVICE_NVRAM:
|
||||||
|
case VIR_DOMAIN_DEVICE_SHMEM:
|
||||||
|
case VIR_DOMAIN_DEVICE_TPM:
|
||||||
|
case VIR_DOMAIN_DEVICE_PANIC:
|
||||||
|
case VIR_DOMAIN_DEVICE_MEMORY:
|
||||||
|
case VIR_DOMAIN_DEVICE_IOMMU:
|
||||||
|
ret = 0;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIR_DOMAIN_DEVICE_NONE:
|
||||||
|
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
|
_("unexpected VIR_DOMAIN_DEVICE_NONE"));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case VIR_DOMAIN_DEVICE_LAST:
|
||||||
|
default:
|
||||||
|
virReportEnumRangeError(virDomainDeviceType, dev->type);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user