libvirt/src/vbox
John Ferlan 97278ab472 vbox: Adjust the UTF FREE macros
Adjust the macros to free memory allocated during various calls to
perform the check if parameter is NULL prior to really freeing and to
set the pointer to NULL after done freeing.
2013-01-25 16:16:35 -07: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: Add support for VirtualBox 4.1 2011-10-29 21:26:57 +02:00
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 vbox: Adjust the UTF FREE macros 2013-01-25 16:16:35 -07: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: Add support for VirtualBox 4.1 2011-10-29 21:26:57 +02:00
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.