1
0
mirror of https://gitlab.com/libvirt/libvirt.git synced 2025-03-07 17:28:15 +00:00

qemu: domain: Refactor domain device validation function

Use a style that will discourage from adding inline checks.
This commit is contained in:
Peter Krempa 2017-11-14 14:51:28 +01:00
parent ab948b6299
commit 85b0e2f126

View File

@ -3729,36 +3729,61 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
const virDomainDef *def, const virDomainDef *def,
void *opaque ATTRIBUTE_UNUSED) void *opaque ATTRIBUTE_UNUSED)
{ {
int ret = -1; int ret = 0;
if (dev->type == VIR_DOMAIN_DEVICE_NET) { switch ((virDomainDeviceType) dev->type) {
if (qemuDomainDeviceDefValidateNetwork(dev->data.net) < 0) case VIR_DOMAIN_DEVICE_NET:
goto cleanup; ret = qemuDomainDeviceDefValidateNetwork(dev->data.net);
} else if (dev->type == VIR_DOMAIN_DEVICE_CHR) { break;
if (qemuDomainChrDefValidate(dev->data.chr, def) < 0)
goto cleanup; case VIR_DOMAIN_DEVICE_CHR:
} else if (dev->type == VIR_DOMAIN_DEVICE_SMARTCARD) { ret = qemuDomainChrDefValidate(dev->data.chr, def);
if (qemuDomainSmartcardDefValidate(dev->data.smartcard) < 0) break;
goto cleanup;
} else if (dev->type == VIR_DOMAIN_DEVICE_RNG) { case VIR_DOMAIN_DEVICE_SMARTCARD:
if (qemuDomainRNGDefValidate(dev->data.rng) < 0) ret = qemuDomainSmartcardDefValidate(dev->data.smartcard);
goto cleanup; break;
} else if (dev->type == VIR_DOMAIN_DEVICE_REDIRDEV) {
if (qemuDomainRedirdevDefValidate(dev->data.redirdev) < 0) case VIR_DOMAIN_DEVICE_RNG:
goto cleanup; ret = qemuDomainRNGDefValidate(dev->data.rng);
} else if (dev->type == VIR_DOMAIN_DEVICE_WATCHDOG) { break;
if (qemuDomainWatchdogDefValidate(dev->data.watchdog, def) < 0)
goto cleanup; case VIR_DOMAIN_DEVICE_REDIRDEV:
} else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV) { ret = qemuDomainRedirdevDefValidate(dev->data.redirdev);
if (qemuDomainDeviceDefValidateHostdev(dev->data.hostdev, def) < 0) break;
goto cleanup;
} else if (dev->type == VIR_DOMAIN_DEVICE_VIDEO) { case VIR_DOMAIN_DEVICE_WATCHDOG:
if (qemuDomainDeviceDefValidateVideo(dev->data.video) < 0) ret = qemuDomainWatchdogDefValidate(dev->data.watchdog, def);
goto cleanup; break;
case VIR_DOMAIN_DEVICE_HOSTDEV:
ret = qemuDomainDeviceDefValidateHostdev(dev->data.hostdev, def);
break;
case VIR_DOMAIN_DEVICE_VIDEO:
ret = qemuDomainDeviceDefValidateVideo(dev->data.video);
break;
case VIR_DOMAIN_DEVICE_DISK:
case VIR_DOMAIN_DEVICE_LEASE:
case VIR_DOMAIN_DEVICE_FS:
case VIR_DOMAIN_DEVICE_INPUT:
case VIR_DOMAIN_DEVICE_SOUND:
case VIR_DOMAIN_DEVICE_CONTROLLER:
case VIR_DOMAIN_DEVICE_GRAPHICS:
case VIR_DOMAIN_DEVICE_HUB:
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:
case VIR_DOMAIN_DEVICE_NONE:
case VIR_DOMAIN_DEVICE_LAST:
break;
} }
ret = 0;
cleanup:
return ret; return ret;
} }