int n;
int state;
int reason = 0;
+ void *parseOpaque = NULL;
if (!(obj = virDomainObjNew(xmlopt)))
return NULL;
xmlopt->privateData.parse(ctxt, obj, &xmlopt->config) < 0)
goto error;
+ if (xmlopt->privateData.getParseOpaque)
+ parseOpaque = xmlopt->privateData.getParseOpaque(obj);
+
/* callback to fill driver specific domain aspects */
- if (virDomainDefPostParse(obj->def, caps, flags, xmlopt, NULL) < 0)
+ if (virDomainDefPostParse(obj->def, caps, flags, xmlopt, parseOpaque) < 0)
goto error;
/* valdiate configuration */
virDomainObjPtr,
virDomainDefParserConfigPtr);
+typedef void *(*virDomainXMLPrivateDataGetParseOpaqueFunc)(virDomainObjPtr vm);
+
typedef int (*virDomainXMLPrivateDataStorageSourceParseFunc)(xmlXPathContextPtr ctxt,
virStorageSourcePtr src);
typedef int (*virDomainXMLPrivateDataStorageSourceFormatFunc)(virStorageSourcePtr src,
virDomainXMLPrivateDataNewFunc chrSourceNew;
virDomainXMLPrivateDataFormatFunc format;
virDomainXMLPrivateDataParseFunc parse;
+ /* following function shall return a pointer which will be used as the
+ * 'parseOpaque' argument for virDomainDefPostParse */
+ virDomainXMLPrivateDataGetParseOpaqueFunc getParseOpaque;
virDomainXMLPrivateDataStorageSourceParseFunc storageParse;
virDomainXMLPrivateDataStorageSourceFormatFunc storageFormat;
};