}
-/*
- * Turn a config record into a lump of XML describing the
- * domain, suitable for later feeding for virDomainCreateXML
- */
-virDomainDefPtr
-xenParseXM(virConfPtr conf, int xendConfigVersion,
- virCapsPtr caps)
+int
+xenParseConfigCommon(virConfPtr conf,
+ virDomainDefPtr def,
+ virCapsPtr caps,
+ int xendConfigVersion)
{
- virDomainDefPtr def = NULL;
-
- if (VIR_ALLOC(def) < 0)
- return NULL;
-
- def->virtType = VIR_DOMAIN_VIRT_XEN;
- def->id = -1;
-
if (xenParseXMGeneralMeta(conf, def, caps) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMOS(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMMem(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMEventsActions(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMCPUFeatures(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMTimeOffset(conf, def, xendConfigVersion) < 0)
- goto cleanup;
-
- if (xenParseXMDisk(conf, def, xendConfigVersion) < 0)
- goto cleanup;
+ return -1;
if (xenXMConfigCopyStringOpt(conf, "device_model", &def->emulator) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMVif(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMPCI(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMEmulatedDevices(conf, def) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMVfb(conf, def, xendConfigVersion) < 0)
- goto cleanup;
+ return -1;
if (xenParseXMCharDev(conf, def) < 0)
+ return -1;
+
+ return 0;
+}
+
+
+/*
+ * Turn a config record into a lump of XML describing the
+ * domain, suitable for later feeding for virDomainCreateXML
+ */
+virDomainDefPtr
+xenParseXM(virConfPtr conf,
+ int xendConfigVersion,
+ virCapsPtr caps)
+{
+ virDomainDefPtr def = NULL;
+
+ if (VIR_ALLOC(def) < 0)
+ return NULL;
+
+ def->virtType = VIR_DOMAIN_VIRT_XEN;
+ def->id = -1;
+
+ if (xenParseConfigCommon(conf, def, caps, xendConfigVersion) < 0)
goto cleanup;
+ if (xenParseXMDisk(conf, def, xendConfigVersion) < 0)
+ goto cleanup;
+
return def;
cleanup: