if ((ret = virDomainDefPostParseInternal(def, &data)) < 0)
return ret;
+ if (xmlopt->config.assignAddressesCallback) {
+ ret = xmlopt->config.assignAddressesCallback(def, caps, parseFlags,
+ xmlopt->config.priv);
+ if (ret < 0)
+ return ret;
+ }
+
if (virDomainDefPostParseCheckFeatures(def, xmlopt) < 0)
return -1;
virCapsPtr caps,
unsigned int parseFlags,
void *opaque);
+/* Drive callback for assigning device addresses, called at the end
+ * of parsing, after all defaults and implicit devices have been added. */
+typedef int (*virDomainDefAssignAddressesCallback)(virDomainDef *def,
+ virCapsPtr caps,
+ unsigned int parseFlags,
+ void *opaque);
+
typedef struct _virDomainDefParserConfig virDomainDefParserConfig;
typedef virDomainDefParserConfig *virDomainDefParserConfigPtr;
/* driver domain definition callbacks */
virDomainDefPostParseCallback domainPostParseCallback;
virDomainDeviceDefPostParseCallback devicesPostParseCallback;
+ virDomainDefAssignAddressesCallback assignAddressesCallback;
/* private data for the callbacks */
void *priv;