g_autofree char *target = NULL;
g_autofree char *bus = NULL;
g_autofree char *serial = NULL;
- g_autofree char *startupPolicy = NULL;
g_autofree char *removable = NULL;
g_autofree char *logical_block_size = NULL;
g_autofree char *physical_block_size = NULL;
source = true;
- startupPolicy = virXMLPropString(cur, "startupPolicy");
+ if (virXMLPropEnum(cur, "startupPolicy",
+ virDomainStartupPolicyTypeFromString,
+ VIR_XML_PROP_OPTIONAL | VIR_XML_PROP_NONZERO,
+ &def->startupPolicy) < 0)
+ return NULL;
if (!(flags & VIR_DOMAIN_DEF_PARSE_INACTIVE) &&
(tmp = virXMLPropString(cur, "index")) &&
return NULL;
}
- if (startupPolicy) {
- int val;
-
- if ((val = virDomainStartupPolicyTypeFromString(startupPolicy)) <= 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("unknown startupPolicy value '%s'"),
- startupPolicy);
- return NULL;
- }
- def->startupPolicy = val;
- }
-
def->dst = g_steal_pointer(&target);
if (authdef) {
/* If we've already parsed <source> and found an <auth> child,
virTristateSwitch event_idx;
virTristateSwitch copy_on_read;
int snapshot; /* virDomainSnapshotLocation, snapshot_conf.h */
- int startupPolicy; /* enum virDomainStartupPolicy */
+ virDomainStartupPolicy startupPolicy;
bool transient;
virDomainDeviceInfo info;
int rawio; /* enum virTristateBool */