]> xenbits.xensource.com Git - libvirt.git/commitdiff
domain: Add virDomainDefAssignAddressesCallback
authorCole Robinson <crobinso@redhat.com>
Sat, 14 May 2016 18:47:23 +0000 (14:47 -0400)
committerCole Robinson <crobinso@redhat.com>
Wed, 18 May 2016 18:33:58 +0000 (14:33 -0400)
This will be called at the end of virDomainDefPostParse to
allow hypervisor drivers to fill in device addresses.

src/conf/domain_conf.c
src/conf/domain_conf.h

index 5c1fb209fbc91b9a648959b20b410d51d54e4166..1dc45f4bada1ca0f9da3c677e931751bc9bbc902 100644 (file)
@@ -4440,6 +4440,13 @@ virDomainDefPostParse(virDomainDefPtr def,
     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;
 
index 3ad3604041fb005b84e15287c5d25b18449814f9..4e21826105ef6cb81208656761abb87dfba64918 100644 (file)
@@ -2475,6 +2475,13 @@ typedef int (*virDomainDeviceDefPostParseCallback)(virDomainDeviceDefPtr dev,
                                                    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;
@@ -2482,6 +2489,7 @@ struct _virDomainDefParserConfig {
     /* driver domain definition callbacks */
     virDomainDefPostParseCallback domainPostParseCallback;
     virDomainDeviceDefPostParseCallback devicesPostParseCallback;
+    virDomainDefAssignAddressesCallback assignAddressesCallback;
 
     /* private data for the callbacks */
     void *priv;