[libvirt] [PATCH 4/5] install vbox api register in vbox_driver
Michal Privoznik
mprivozn at redhat.com
Tue Jun 24 13:27:59 UTC 2014
On 23.06.2014 06:25, Taowei wrote:
> Register pVBoxAPI in vbox_common.c with the current vbox
> version.
>
> ---
> 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..4eb3c04 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_common.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;
I assume as the code is rewritten, these vbox22StorageDriver and
vbox22NetworkDriver and others will go away, right?
> 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;
> }
>
>
More information about the libvir-list
mailing list