diff mbox

[1/4] domain: Add virDomainDefAssignAddressesCallback

Message ID 870fb8f388bd01b1d1b61f29867d6e4b070c253c.1463255562.git.crobinso@redhat.com
State Accepted
Commit f891390fa7c2af2d3379e9596879c274a7600354
Headers show

Commit Message

Cole Robinson May 14, 2016, 8 p.m. UTC
This will be called at the end of virDomainDefPostParse to fill
allow hypervisor drivers to fill in device addresses.
---
 src/conf/domain_conf.c | 7 +++++++
 src/conf/domain_conf.h | 8 ++++++++
 2 files changed, 15 insertions(+)

-- 
2.7.4

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
diff mbox

Patch

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ed0c471..1c8d326 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -4448,6 +4448,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;
 
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index b9e696d..02594fe 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -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;