return virBufferContentAndReset(&buf);
}
-
-
-#define ENUM_VALUE_MISSING(capsEnum, value) !(capsEnum.values & (1 << value))
-
-#define ENUM_VALUE_ERROR(valueLabel, valueString) \
- do { \
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, \
- _("domain configuration does not support '%s' value '%s'"), \
- valueLabel, valueString); \
- } while (0)
-
-
-int
-virDomainCapsDeviceDefValidate(const virDomainCaps *caps G_GNUC_UNUSED,
- const virDomainDeviceDef *dev,
- const virDomainDef *def G_GNUC_UNUSED)
-{
- int ret = 0;
-
- switch ((virDomainDeviceType) dev->type) {
- case VIR_DOMAIN_DEVICE_VIDEO:
- case VIR_DOMAIN_DEVICE_AUDIO:
- /* TODO: add validation */
- break;
-
- case VIR_DOMAIN_DEVICE_DISK:
- case VIR_DOMAIN_DEVICE_REDIRDEV:
- case VIR_DOMAIN_DEVICE_NET:
- case VIR_DOMAIN_DEVICE_CONTROLLER:
- case VIR_DOMAIN_DEVICE_CHR:
- case VIR_DOMAIN_DEVICE_SMARTCARD:
- case VIR_DOMAIN_DEVICE_HOSTDEV:
- case VIR_DOMAIN_DEVICE_MEMORY:
- case VIR_DOMAIN_DEVICE_VSOCK:
- case VIR_DOMAIN_DEVICE_INPUT:
- case VIR_DOMAIN_DEVICE_SHMEM:
- case VIR_DOMAIN_DEVICE_LEASE:
- case VIR_DOMAIN_DEVICE_FS:
- case VIR_DOMAIN_DEVICE_SOUND:
- case VIR_DOMAIN_DEVICE_WATCHDOG:
- case VIR_DOMAIN_DEVICE_GRAPHICS:
- case VIR_DOMAIN_DEVICE_HUB:
- case VIR_DOMAIN_DEVICE_MEMBALLOON:
- case VIR_DOMAIN_DEVICE_NVRAM:
- case VIR_DOMAIN_DEVICE_RNG:
- case VIR_DOMAIN_DEVICE_TPM:
- case VIR_DOMAIN_DEVICE_PANIC:
- case VIR_DOMAIN_DEVICE_IOMMU:
- case VIR_DOMAIN_DEVICE_NONE:
- case VIR_DOMAIN_DEVICE_LAST:
- break;
- }
-
- return ret;
-}
int ret = 0;
virQEMUDriverPtr driver = opaque;
g_autoptr(virQEMUCaps) qemuCaps = NULL;
- g_autoptr(virDomainCaps) domCaps = NULL;
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
def->emulator)))
return -1;
- if (!(domCaps = virQEMUDriverGetDomainCapabilities(driver, qemuCaps,
- def->os.machine,
- def->os.arch,
- def->virtType)))
- return -1;
-
if ((ret = qemuValidateDomainDeviceDefAddress(dev, qemuCaps)) < 0)
return ret;
- if ((ret = virDomainCapsDeviceDefValidate(domCaps, dev, def)) < 0)
- return ret;
-
switch ((virDomainDeviceType)dev->type) {
case VIR_DOMAIN_DEVICE_NET:
ret = qemuValidateDomainDeviceDefNetwork(dev->data.net, qemuCaps);