if (!def)
return;
+ virDomainDeviceInfoClear(&def->info);
+
VIR_FREE(def);
}
if (!def)
return;
+ virDomainDeviceInfoClear(&def->info);
+
VIR_FREE(def);
}
if (!def)
return;
+ virDomainDeviceInfoClear(&def->info);
+
VIR_FREE(def->accel);
VIR_FREE(def);
}
static virDomainSoundDefPtr
virDomainSoundDefParseXML(virConnectPtr conn,
const xmlNodePtr node,
- int flags ATTRIBUTE_UNUSED) {
-
+ int flags)
+{
char *model;
virDomainSoundDefPtr def;
goto error;
}
+ if (virDomainDeviceInfoParseXML(conn, node, &def->info, flags) < 0)
+ goto error;
+
cleanup:
VIR_FREE(model);
static virDomainWatchdogDefPtr
virDomainWatchdogDefParseXML(virConnectPtr conn,
const xmlNodePtr node,
- int flags ATTRIBUTE_UNUSED) {
+ int flags)
+{
char *model = NULL;
char *action = NULL;
}
}
+ if (virDomainDeviceInfoParseXML(conn, node, &def->info, flags) < 0)
+ goto error;
+
cleanup:
VIR_FREE (action);
VIR_FREE (model);
virDomainVideoDefParseXML(virConnectPtr conn,
const xmlNodePtr node,
virDomainDefPtr dom,
- int flags ATTRIBUTE_UNUSED) {
+ int flags) {
virDomainVideoDefPtr def;
xmlNodePtr cur;
char *type = NULL;
def->heads = 1;
}
+ if (virDomainDeviceInfoParseXML(conn, node, &def->info, flags) < 0)
+ goto error;
+
VIR_FREE(type);
VIR_FREE(vram);
VIR_FREE(heads);
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "watchdog")) {
dev->type = VIR_DOMAIN_DEVICE_WATCHDOG;
- if (!(dev->data.watchdog = virDomainWatchdogDefParseXML(conn, node,
- flags)))
+ if (!(dev->data.watchdog = virDomainWatchdogDefParseXML(conn, node, flags)))
goto error;
} else if (xmlStrEqual(node->name, BAD_CAST "video")) {
dev->type = VIR_DOMAIN_DEVICE_VIDEO;
}
if (n > 0) {
virDomainWatchdogDefPtr watchdog =
- virDomainWatchdogDefParseXML (conn, nodes[0], flags);
+ virDomainWatchdogDefParseXML(conn, nodes[0], flags);
if (!watchdog)
goto error;
return -1;
}
- virBufferVSprintf(buf, " <sound model='%s'/>\n",
+ virBufferVSprintf(buf, " <sound model='%s'",
model);
+ if (virDomainDeviceInfoIsSet(&def->info)) {
+ virBufferAddLit(buf, ">\n");
+ if (virDomainDeviceInfoFormat(buf, &def->info) < 0)
+ return -1;
+ virBufferAddLit(buf, " </sound>\n");
+ } else {
+ virBufferAddLit(buf, "/>\n");
+ }
+
return 0;
}
return -1;
}
- virBufferVSprintf(buf, " <watchdog model='%s' action='%s'/>\n",
+ virBufferVSprintf(buf, " <watchdog model='%s' action='%s'",
model, action);
+ if (virDomainDeviceInfoIsSet(&def->info)) {
+ virBufferAddLit(buf, ">\n");
+ if (virDomainDeviceInfoFormat(buf, &def->info) < 0)
+ return -1;
+ virBufferAddLit(buf, " </watchdog>\n");
+ } else {
+ virBufferAddLit(buf, "/>\n");
+ }
+
return 0;
}
virBufferAddLit(buf, "/>\n");
}
+ if (virDomainDeviceInfoFormat(buf, &def->info) < 0)
+ return -1;
+
virBufferAddLit(buf, " </video>\n");
return 0;