libvirt/src/vbox
2013-04-13 13:28:36 +08:00
..
README
vbox_CAPI_v2_2.h
vbox_CAPI_v3_0.h
vbox_CAPI_v3_1.h
vbox_CAPI_v3_2.h
vbox_CAPI_v4_0.h
vbox_CAPI_v4_1.h
vbox_driver.c Rename virterror.c virterror_internal.h to virerror.{c,h} 2012-12-21 11:19:50 +00:00
vbox_driver.h
vbox_glue.c maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
vbox_glue.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
vbox_MSCOMGlue.c Rename virterror.c virterror_internal.h to virerror.{c,h} 2012-12-21 11:19:50 +00:00
vbox_MSCOMGlue.h maint: fix up copyright notice inconsistencies 2012-09-20 16:30:55 -06:00
vbox_tmpl.c cleanup: Change datatype of graphic's members to boolean 2013-04-13 13:28:36 +08:00
vbox_V2_2.c
vbox_V3_0.c
vbox_V3_1.c
vbox_V3_2.c
vbox_V4_0.c
vbox_V4_1.c
vbox_XPCOMCGlue.c Rename virterror.c virterror_internal.h to virerror.{c,h} 2012-12-21 11:19:50 +00:00
vbox_XPCOMCGlue.h

    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.