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
