[libvirt] [PATCHv4 4/4]vbox: Install vboxUniformedAPI

Taowei uaedante at gmail.com
Thu Jun 26 13:51:44 UTC 2014


Install the uniformed API for common code.

---
 src/vbox/vbox_driver.c |   35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/vbox/vbox_driver.c b/src/vbox/vbox_driver.c
index 7d004b2..e90b7ef 100644
--- a/src/vbox/vbox_driver.c
+++ b/src/vbox/vbox_driver.c
@@ -39,6 +39,9 @@
 #include "vbox_glue.h"
 #include "virerror.h"
 #include "virutil.h"
+#include "domain_event.h"
+#include "domain_conf.h"
+#include "vbox_uniformed_api.h"
 
 #define VIR_FROM_THIS VIR_FROM_VBOX
 
@@ -47,33 +50,43 @@ VIR_LOG_INIT("vbox.vbox_driver");
 extern virDriver vbox22Driver;
 extern virNetworkDriver vbox22NetworkDriver;
 extern virStorageDriver vbox22StorageDriver;
+extern vboxUniformedAPI vbox22UniformedAPI;
 extern virDriver vbox30Driver;
 extern virNetworkDriver vbox30NetworkDriver;
 extern virStorageDriver vbox30StorageDriver;
+extern vboxUniformedAPI vbox30UniformedAPI;
 extern virDriver vbox31Driver;
 extern virNetworkDriver vbox31NetworkDriver;
 extern virStorageDriver vbox31StorageDriver;
+extern vboxUniformedAPI vbox31UniformedAPI;
 extern virDriver vbox32Driver;
 extern virNetworkDriver vbox32NetworkDriver;
 extern virStorageDriver vbox32StorageDriver;
+extern vboxUniformedAPI vbox32UniformedAPI;
 extern virDriver vbox40Driver;
 extern virNetworkDriver vbox40NetworkDriver;
 extern virStorageDriver vbox40StorageDriver;
+extern vboxUniformedAPI vbox40UniformedAPI;
 extern virDriver vbox41Driver;
 extern virNetworkDriver vbox41NetworkDriver;
 extern virStorageDriver vbox41StorageDriver;
+extern vboxUniformedAPI vbox41UniformedAPI;
 extern virDriver vbox42Driver;
 extern virNetworkDriver vbox42NetworkDriver;
 extern virStorageDriver vbox42StorageDriver;
+extern vboxUniformedAPI vbox42UniformedAPI;
 extern virDriver vbox42_20Driver;
 extern virNetworkDriver vbox42_20NetworkDriver;
 extern virStorageDriver vbox42_20StorageDriver;
+extern vboxUniformedAPI vbox42_20UniformedAPI;
 extern virDriver vbox43Driver;
 extern virNetworkDriver vbox43NetworkDriver;
 extern virStorageDriver vbox43StorageDriver;
+extern vboxUniformedAPI vbox43UniformedAPI;
 extern virDriver vbox43_4Driver;
 extern virNetworkDriver vbox43_4NetworkDriver;
 extern virStorageDriver vbox43_4StorageDriver;
+extern vboxUniformedAPI vbox43_4UniformedAPI;
 
 static virDriver vboxDriverDummy;
 
@@ -84,6 +97,7 @@ int vboxRegister(void)
     virDriverPtr        driver;
     virNetworkDriverPtr networkDriver;
     virStorageDriverPtr storageDriver;
+    vboxUniformedAPI    *vboxAPI;
     uint32_t            uVersion;
 
     /*
@@ -95,6 +109,7 @@ int vboxRegister(void)
     driver        = &vboxDriverDummy;
     networkDriver = &vbox22NetworkDriver;
     storageDriver = &vbox22StorageDriver;
+    vboxAPI       = &vbox22UniformedAPI;
 
     /* Init the glue and get the API version. */
     if (VBoxCGlueInit(&uVersion) == 0) {
@@ -113,51 +128,61 @@ int vboxRegister(void)
             driver        = &vbox22Driver;
             networkDriver = &vbox22NetworkDriver;
             storageDriver = &vbox22StorageDriver;
+            vboxAPI       = &vbox22UniformedAPI;
         } else if (uVersion >= 2002051 && uVersion < 3000051) {
             VIR_DEBUG("VirtualBox API version: 3.0");
             driver        = &vbox30Driver;
             networkDriver = &vbox30NetworkDriver;
             storageDriver = &vbox30StorageDriver;
+            vboxAPI       = &vbox30UniformedAPI;
         } else if (uVersion >= 3000051 && uVersion < 3001051) {
             VIR_DEBUG("VirtualBox API version: 3.1");
             driver        = &vbox31Driver;
             networkDriver = &vbox31NetworkDriver;
             storageDriver = &vbox31StorageDriver;
+            vboxAPI       = &vbox31UniformedAPI;
         } else if (uVersion >= 3001051 && uVersion < 3002051) {
             VIR_DEBUG("VirtualBox API version: 3.2");
             driver        = &vbox32Driver;
             networkDriver = &vbox32NetworkDriver;
             storageDriver = &vbox32StorageDriver;
+            vboxAPI       = &vbox32UniformedAPI;
         } else if (uVersion >= 3002051 && uVersion < 4000051) {
             VIR_DEBUG("VirtualBox API version: 4.0");
             driver        = &vbox40Driver;
             networkDriver = &vbox40NetworkDriver;
             storageDriver = &vbox40StorageDriver;
+            vboxAPI       = &vbox40UniformedAPI;
         } else if (uVersion >= 4000051 && uVersion < 4001051) {
             VIR_DEBUG("VirtualBox API version: 4.1");
             driver        = &vbox41Driver;
             networkDriver = &vbox41NetworkDriver;
             storageDriver = &vbox41StorageDriver;
+            vboxAPI       = &vbox41UniformedAPI;
         } else if (uVersion >= 4001051 && uVersion < 4002020) {
             VIR_DEBUG("VirtualBox API version: 4.2");
             driver        = &vbox42Driver;
             networkDriver = &vbox42NetworkDriver;
             storageDriver = &vbox42StorageDriver;
+            vboxAPI       = &vbox42UniformedAPI;
         } else if (uVersion >= 4002020 && uVersion < 4002051) {
-           VIR_DEBUG("VirtualBox API version: 4.2.20 or higher");
-           driver         = &vbox42_20Driver;
-           networkDriver  = &vbox42_20NetworkDriver;
-           storageDriver  = &vbox42_20StorageDriver;
+            VIR_DEBUG("VirtualBox API version: 4.2.20 or higher");
+            driver         = &vbox42_20Driver;
+            networkDriver  = &vbox42_20NetworkDriver;
+            storageDriver  = &vbox42_20StorageDriver;
+            vboxAPI        = &vbox42_20UniformedAPI;
         } else if (uVersion >= 4002051 && uVersion < 4003004) {
             VIR_DEBUG("VirtualBox API version: 4.3");
             driver        = &vbox43Driver;
             networkDriver = &vbox43NetworkDriver;
             storageDriver = &vbox43StorageDriver;
+            vboxAPI       = &vbox43UniformedAPI;
         } else if (uVersion >= 4003004 && uVersion < 4003051) {
             VIR_DEBUG("VirtualBox API version: 4.3.4 or higher");
             driver        = &vbox43_4Driver;
             networkDriver = &vbox43_4NetworkDriver;
             storageDriver = &vbox43_4StorageDriver;
+            vboxAPI       = &vbox43_4UniformedAPI;
         } else {
             VIR_DEBUG("Unsupported VirtualBox API version: %u", uVersion);
         }
@@ -172,6 +197,8 @@ int vboxRegister(void)
     if (virRegisterStorageDriver(storageDriver) < 0)
         return -1;
 
+    vboxRegisterUniformedAPI(vboxAPI);
+
     return 0;
 }
 
-- 
1.7.9.5




More information about the libvir-list mailing list