libvirt/src/vbox
Cole Robinson 6094ad7bd7 Promote virEvent*Handle/Timeout to public API
Since we virEventRegisterDefaultImpl is now a public API, callers need
a way to invoke the default registered Handle and Timeout functions. We
already have general functions for these internally, so promote
them to the public API.

v2:
    Actually add APIs to libvirt.h
2011-06-21 10:08:47 -04:00
..
README
vbox_CAPI_v2_2.h vbox: Handle different IID representation in Version 2.2 on Windows 2010-12-27 23:53:39 +01:00
vbox_CAPI_v3_0.h vbox: Match struct layout of the MSCOM implementation on Windows 2010-12-17 22:15:24 +01:00
vbox_CAPI_v3_1.h vbox: Match struct layout of the MSCOM implementation on Windows 2010-12-17 22:15:24 +01:00
vbox_CAPI_v3_2.h vbox: Match struct layout of the MSCOM implementation on Windows 2010-12-17 22:15:24 +01:00
vbox_CAPI_v4_0.h vbox: Add support for VirtualBox 4.0 2010-12-28 00:18:46 +01:00
vbox_driver.c libvirt,logging: cleanup VIR_XXX0() 2011-05-11 12:41:14 -06:00
vbox_driver.h build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
vbox_glue.c vbox: Add glue layer for MSCOM on Windows 2010-12-17 22:51:33 +01:00
vbox_glue.h vbox: Add glue layer for MSCOM on Windows 2010-12-17 22:51:33 +01:00
vbox_MSCOMGlue.c vbox: Fix version extraction on Windows for newer VirtualBox versions 2011-06-04 10:50:36 +02:00
vbox_MSCOMGlue.h vbox: Add support for VirtualBox 4.0 2010-12-28 00:18:46 +01:00
vbox_tmpl.c Promote virEvent*Handle/Timeout to public API 2011-06-21 10:08:47 -04:00
vbox_V2_2.c
vbox_V3_0.c
vbox_V3_1.c vbox: Add support for version 3.1 2009-12-04 14:49:45 +01:00
vbox_V3_2.c Support for VirtualBox version 3.2 2010-05-27 01:28:21 +02:00
vbox_V4_0.c vbox: Add support for VirtualBox 4.0 2010-12-28 00:18:46 +01:00
vbox_XPCOMCGlue.c vbox: Fix typo in error message 2011-06-04 22:41:49 +02:00
vbox_XPCOMCGlue.h vbox: Add support for VirtualBox 4.0 2010-12-28 00:18:46 +01:00

    Explanation about the how multi-version support
    for VirtualBox libvirt driver is implemented.

Since VirtualBox adds multiple new features for each release, it is but
natural that the C API which VirtualBox exposes is volatile across
versions and thus needs a good mechanism to handle multiple versions
during runtime. The solution was something like this:

Firstly the file structure is as below:

vbox_CAPI_v2_2.h
vbox_XPCOMCGlue.h
vbox_XPCOMCGlue.c
These files are C API/glue code files directly taken from the
VirtualBox OSE source and is needed for C API to work as expected.

vbox_driver.h
vbox_driver.c
These files have the main logic for registering the virtualbox driver
with libvirt.

vbox_V2_2.c
The file which has version dependent changes and includes the template
file for given below for all of its functionality.

vbox_tmpl.c
The file where all the real driver implementation code exists.

Now there would be a vbox_V*.c file (for eg: vbox_V2_2.c for V2.2) for
each major virtualbox version which would do some preprocessor magic
and include the template file (vbox_tmpl.c) in it for the functionality
it offers.