bool source = false;
g_autofree char *tmp = NULL;
g_autofree char *snapshot = NULL;
- g_autofree char *sgio = NULL;
g_autofree char *target = NULL;
g_autofree char *bus = NULL;
g_autofree char *serial = NULL;
if (virXMLPropTristateBool(node, "rawio", VIR_XML_PROP_OPTIONAL, &def->rawio) < 0)
return NULL;
- sgio = virXMLPropString(node, "sgio");
+ if (virXMLPropEnum(node, "sgio", virDomainDeviceSGIOTypeFromString,
+ VIR_XML_PROP_OPTIONAL | VIR_XML_PROP_NONZERO, &def->sgio) < 0)
+ return NULL;
for (cur = node->children; cur != NULL; cur = cur->next) {
if (cur->type != XML_ELEMENT_NODE)
}
}
- if (sgio) {
- if ((def->sgio = virDomainDeviceSGIOTypeFromString(sgio)) <= 0) {
- virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
- _("unknown disk sgio mode '%s'"), sgio);
- return NULL;
- }
- }
-
if (bus) {
if ((def->bus = virDomainDiskBusTypeFromString(bus)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
bool transient;
virDomainDeviceInfo info;
virTristateBool rawio;
- int sgio; /* enum virDomainDeviceSGIO */
+ virDomainDeviceSGIO sgio;
int discard; /* enum virDomainDiskDiscard */
unsigned int iothread; /* unused = 0, > 0 specific thread # */
int detect_zeroes; /* enum virDomainDiskDetectZeroes */