}
+static virStorageSource *
+virDomainDiskDefParseSourceXML(virDomainXMLOption *xmlopt,
+ xmlNodePtr node,
+ xmlXPathContextPtr ctxt,
+ unsigned int flags)
+{
+ g_autoptr(virDomainDiskDef) diskdef = NULL;
+
+ if (!(diskdef = virDomainDiskDefParseXML(xmlopt, node, ctxt,
+ flags | VIR_DOMAIN_DEF_PARSE_DISK_SOURCE)))
+ return NULL;
+
+ return g_steal_pointer(&diskdef->src);
+}
+
/**
* virDomainParseMemory:
}
+virStorageSource *
+virDomainDiskDefParseSource(const char *xmlStr,
+ virDomainXMLOption *xmlopt,
+ unsigned int flags)
+{
+ g_autoptr(xmlDoc) xml = NULL;
+ g_autoptr(xmlXPathContext) ctxt = NULL;
+
+ if (!(xml = virXMLParseStringCtxtRoot(xmlStr, _("(disk_definition)"), "disk", &ctxt)))
+ return NULL;
+
+ return virDomainDiskDefParseSourceXML(xmlopt, ctxt->node, ctxt, flags);
+}
+
+
static const char *
virDomainChrTargetTypeToString(int deviceType,
int targetType)
virDomainDiskDef *virDomainDiskDefParse(const char *xmlStr,
virDomainXMLOption *xmlopt,
unsigned int flags);
+virStorageSource *virDomainDiskDefParseSource(const char *xmlStr,
+ virDomainXMLOption *xmlopt,
+ unsigned int flags);
virDomainDef *virDomainDefParseString(const char *xmlStr,
virDomainXMLOption *xmlopt,
void *parseOpaque,
virDomainDiskDefFree;
virDomainDiskDefNew;
virDomainDiskDefParse;
+virDomainDiskDefParseSource;
virDomainDiskDetectZeroesTypeFromString;
virDomainDiskDetectZeroesTypeToString;
virDomainDiskDeviceTypeToString;