Thank you, Michal. This could never been done without your help!

Taowei

> 在 2014年8月12日,23:31,Michal Privoznik <[email protected]> 写道:
> 
>> 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

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to