libvirt/src/vbox
Peter Krempa 27cf98e2d1 virCaps: conf: start splitting out irrelevat data
The virCaps structure gathered a ton of irrelevant data over time that.
The original reason is that it was propagated to the XML parser
functions.

This patch aims to create a new data structure virDomainXMLConf that
will contain immutable data that are used by the XML parser. This will
allow two things we need:

1) Get rid of the stuff from virCaps

2) Allow us to add callbacks to check and add driver specific stuff
after domain XML is parsed.

This first attempt removes pointers to private data allocation functions
to this new structure and update all callers and function that require
them.
2013-03-13 09:27:14 +01: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_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 build: consistently indent preprocessor directives 2010-03-09 19:22:28 +01:00
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 virCaps: conf: start splitting out irrelevat data 2013-03-13 09:27:14 +01:00
vbox_V2_2.c
vbox_V3_0.c Add support for VBox 3 and event callbacks on vbox 2009-07-24 18:12:16 +02:00
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_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 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.