[libvirt] [PATCH 00/66] vbox: Rewrite vbox domain driver

Michal Privoznik mprivozn at redhat.com
Tue Aug 12 15:31:06 UTC 2014


On 11.08.2014 12:06, Taowei wrote:
> This series of patches rewrite the vbox's domain
> driver. The driver is separated into two parts: the version
> specified and the common part. The common driver use
> vboxUniformedAPI to build a general driver for all vbox
> versions. The vboxUniformedAPI take the responsiblity to
> communicate with virtualbox. Since there are some incompatible
> changes in virtualbox, vboxUniformedAPI should be aware of
> these changes and provide a uniformed api for the upper layer.
>
> The significant result of this patch is that we replace all
> vir${vbox_version}Driver into one virCommonDriver. So, we will
> have only one vbox driver implementation for all vbox versions
> in libvirt.
>
> PS: I have send part of my patches before:
> https://www.redhat.com/archives/libvir-list/2014-July/msg00937.html
> But I have to resend it beacuse I did some improvement on previous
> patches:
> *Remove the test case for vboxUniformedAPI, because it would raise
>   "break strict-aliasing rules" warning in some distibutions
> *Merged the flag fdWatchNeedInitialize into domainEventCallbacks,
>   So, we use one flag to indicate whether vbox support callbacks
>   as well as we need to initialize variables for it.
>
> Taowei (66):
>    vbox: Begin to rewrite, vboxConnectOpen
>    vbox: Rewrite vboxConnectClose
>    vbox: Rewrite vboxDomainSave
>    vbox: Rewrite vboxConnectGetVersion
>    vbox: Rewrite vboxConnectGetHostname
>    vbox: Rewrite vboxConnectIsSecure
>    vbox: Rewrite vboxConnectIsEncrypted
>    vbox: Rewrite vboxConnectIsAlive
>    vbox: Rewrite vboxConnectGetMaxVcpus
>    vbox: Rewrite vboxConnectGetCapabilities
>    vbox: Rewrite vboxConnectListDomains
>    vbox: Rewrite vboxConnectNumOfDomains
>    vbox: Rewrite vboxDomainLookupById
>    vbox: Rewrite vboxDomainLookupByUUID
>    vbox: Rewrite vboxDomainUndefineFlags
>    vbox: Rewrite vboxDomainDefineXML
>    vbox: Rewrite vboxDomainCreateWithFlags
>    vbox: Rewrite vboxDomainCreate
>    vbox: Rewrite vboxDomainCreateXML
>    vbox: Rewrite vboxDomainLookupByName
>    vbox: Rewrite vboxDomainIsActive
>    vbox: Rewrite vboxDomainIsPersistent
>    vbox: Rewrite vboxDomainIsUpdated
>    vbox: Rewrite vboxDomainSuspend
>    vbox: Rewrite vboxDomainResume
>    vbox: Rewrite vboxDomainShutdownFlags
>    vbox: Rewrite vboxDomainShutdown
>    vbox: Rewrite vboxDomainReboot
>    vbox: Rewrite vboxDomainDestroyFlags
>    vbox: Rewrite vboxDomainDestroy
>    vbox: Rewrite vboxDomainGetOSType
>    vbox: Rewrite vboxDomainSetMemory
>    vbox: Rewrite vboxDomainGetInfo
>    vbox: Rewrite vboxDomainGetState
>    vbox: Rewrite vboxDomainSetVcpusFlags
>    vbox: Rewrite vboxDomainSetVcpus
>    vbox: Rewrite vboxDomainGetVcpusFlags
>    vbox: Rewrite vboxDomainGetMaxVcpus
>    vbox: Add API for vboxDomainGetXMLDesc
>    vbox: Rewrite vboxDomainGetXMLDesc
>    vbox: Rewrite vboxConnectListDefinedDomains
>    vbox: Rewrite vboxConnectNumOfDefinedDomains
>    vbox: Rewrite vboxDomainUndefine
>    vbox: Rewrite vboxDomainAttachDevice
>    vbox: Rewrite vboxDomainAttachDeviceFlags
>    vbox: Rewrite vboxDomainUpdateDeviceFlags
>    vbox: Rewrite vboxDomainDetachDevice
>    vbox: Rewrite vboxDomainDetachDeviceFlags
>    vbox: Add API for vboxDomainSnapshotCreateXML
>    vbox: Rewrite vboxDomainSnapshotCreateXML
>    vbox: Rewrite vboxDomainSnapshotGetXMLDesc
>    vbox: Rewrite vboxDomainSnapshotNum
>    vbox: Rewrite vboxDomainSnapshotListNames
>    vbox: Rewrite vboxSnapshotLookupByName
>    vbox: Rewrite vboxDomainHasCurrentSnapshot
>    vbox: Rewrite vboxDomainSnapshotGetParent
>    vbox: Rewrite vboxDomainSnapshotCurrent
>    vbox: Rewrite vboxDomainSnapshotIsCurrent
>    vbox: Rewrite vboxDomainSnapshotHasMetadata
>    vbox: Rewrite vboxDomainRevertToSnapshot
>    vbox: Rewrite vboxDomainSnapshotDelete
>    vbox: Rewrite vboxDomainScreenshot
>    vbox: Rewrite vboxConnectListAllDomains
>    vbox: Rewrite vboxNode functions
>    vbox: Add registerDomainEvent
>    vbox: Introducing vboxCommonDriver
>
>   po/POTFILES.in                |    1 +
>   src/Makefile.am               |    5 +-
>   src/vbox/README               |    7 +-
>   src/vbox/vbox_common.c        | 7550 +++++++++++++++++++++
>   src/vbox/vbox_common.h        |  306 +
>   src/vbox/vbox_driver.c        |   40 +-
>   src/vbox/vbox_install_api.h   |   26 +
>   src/vbox/vbox_tmpl.c          |14557 +++++++++++++----------------------------
>   src/vbox/vbox_uniformed_api.h |  551 ++
>   9 files changed, 13186 insertions(+), 9857 deletions(-)
>   create mode 100644 src/vbox/vbox_common.c
>   create mode 100644 src/vbox/vbox_common.h
>   create mode 100644 src/vbox/vbox_install_api.h
>   create mode 100644 src/vbox/vbox_uniformed_api.h
>

ACK to all the patches. I've fixed all the small nits I found. I'm 
keeping the patches on my private branch for some time to give others 
time to share their opinions. Nevertheless, incredible work in making 
the vbox driver look more sane what you've done!

Michal




More information about the libvir-list mailing list