VIR_XPATH_NODE_AUTORESTORE(ctxt)
int nbackends;
g_autofree xmlNodePtr *backends = NULL;
- g_autofree char *model = NULL;
g_autofree char *backend = NULL;
g_autofree char *type = NULL;
def = g_new0(virDomainRNGDef, 1);
- if (!(model = virXMLPropString(node, "model"))) {
- virReportError(VIR_ERR_XML_ERROR, "%s", _("missing RNG device model"));
- goto error;
- }
-
- if ((def->model = virDomainRNGModelTypeFromString(model)) < 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("unknown RNG model '%1$s'"), model);
+ if (virXMLPropEnum(node, "model",
+ virDomainRNGModelTypeFromString,
+ VIR_XML_PROP_REQUIRED,
+ &def->model) < 0)
goto error;
- }
ctxt->node = node;
} virDomainRNGBackend;
struct _virDomainRNGDef {
- int model;
+ virDomainRNGModel model;
int backend;
unsigned int rate; /* bytes per period */
unsigned int period; /* milliseconds */
break;
case VIR_DOMAIN_DEVICE_RNG:
- switch ((virDomainRNGModel) dev->data.rng->model) {
+ switch (dev->data.rng->model) {
case VIR_DOMAIN_RNG_MODEL_VIRTIO_TRANSITIONAL:
/* Transitional devices only work in conventional PCI slots */
return pciFlags;