.parseOpaque = parseOpaque,
};
+ /* call the basic post parse callback */
+ if (xmlopt->config.domainPostParseBasicCallback) {
+ ret = xmlopt->config.domainPostParseBasicCallback(def, caps,
+ xmlopt->config.priv);
+
+ if (ret < 0)
+ return ret;
+ }
+
/* this must be done before the hypervisor-specific callback,
* in case presence of a controller at a specific index is checked
*/
typedef struct _virDomainXMLOption virDomainXMLOption;
typedef virDomainXMLOption *virDomainXMLOptionPtr;
+
+/* Called after everything else has been parsed, for adjusting basics.
+ * This has similar semantics to virDomainDefPostParseCallback, but no
+ * parseOpaque is used. This callback is run prior to
+ * virDomainDefPostParseCallback. */
+typedef int (*virDomainDefPostParseBasicCallback)(virDomainDefPtr def,
+ virCapsPtr caps,
+ void *opaque);
+
/* Called once after everything else has been parsed, for adjusting
* overall domain defaults.
* @parseOpaque is opaque data passed by virDomainDefParse* caller,
typedef virDomainDefParserConfig *virDomainDefParserConfigPtr;
struct _virDomainDefParserConfig {
/* driver domain definition callbacks */
+ virDomainDefPostParseBasicCallback domainPostParseBasicCallback;
virDomainDefPostParseCallback domainPostParseCallback;
virDomainDeviceDefPostParseCallback devicesPostParseCallback;
virDomainDefAssignAddressesCallback assignAddressesCallback;