Libvirt provides a portable, long term stable C API for managing the virtualization technologies provided by many operating systems. It includes support for QEMU, KVM, Xen, LXC, bhyve, Virtuozzo, VMware vCenter and ESX, VMware Desktop, Hyper-V, VirtualBox and the POWER Hypervisor.
Go to file
Eric Blake 7ec6f7bd33 snapshot: framework for more efficient relation traversal
No one was using virDomainSnapshotHasChildren, but that was an
O(n) function.  Exposing and tracking a bit more metadata for each
snapshot will allow the same query to be made with an O(1) query
of the member field.  For single snapshot operations (create,
delete), callers can be trusted to maintain the metadata themselves,
but for reloading, we can't compute parents as we go since there
is no guarantee that parents were parsed before children, so we also
provide a function to refresh the relationships, and which can
be used to detect if the user has ignored our warnings and been
directly modifying files in /var/lib/libvirt/qemu/snapshot.  This
patch only adds metadata; later patches will actually use it.

This layout intentionally hardcodes the size of each snapshot struct,
by tracking sibling pointers, rather than having to deal with the
headache of yet more memory management by directly sticking a
dynamically sized child[] on each parent.

* src/conf/domain_conf.h (_virDomainSnapshotObj)
(_virDomainSnapshotObjList): Add members.
(virDomainSnapshotUpdateRelations, virDomainSnapshotDropParent):
New prototypes.
(virDomainSnapshotHasChildren): Delete.
* src/conf/domain_conf.c (virDomainSnapshotSetRelations)
(virDomainSnapshotUpdateRelations, virDomainSnapshotDropParent):
New functions.
(virDomainSnapshotHasChildren): Drop unused function.
* src/libvirt_private.syms (domain_conf): Update exports.
2011-10-11 17:08:43 -06:00
.gnulib@da1717b7f9 maint: update to latest gnulib 2011-09-08 14:36:46 +01:00
daemon build: Fix VPATH build with new probes 2011-10-11 21:41:51 +02:00
docs docs: fix html bug 2011-10-10 16:36:59 -06:00
examples Update examples for probing with systemtap 2011-10-11 11:26:15 +01:00
gnulib freebsd: Fix build problem due to picking up the wrong libvirt.h 2011-07-29 07:35:54 -06:00
include snapshot: new virDomainSnapshotListChildrenNames API 2011-10-10 16:54:16 -06:00
m4 tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
po Release of libvirt-0.9.6 2011-09-22 14:53:23 +08:00
python snapshot: new virDomainSnapshotListChildrenNames API 2011-10-10 16:54:16 -06:00
src snapshot: framework for more efficient relation traversal 2011-10-11 17:08:43 -06:00
tests build: fix 'make check' linkage with dtrace 2011-10-11 14:08:54 -06:00
tools snapshot: virsh shorthand for operating on current snap 2011-10-11 16:38:48 -06:00
.dir-locals.el maint: let emacs avoid tabs in rng files 2011-08-13 08:56:26 -06:00
.gitignore Prevent crash from dlclose() of libvirt.so 2011-09-16 15:51:31 -06:00
.gitmodules
.mailmap bridge_driver.c: Fix autoconf setting 2011-10-03 23:35:29 -04:00
AUTHORS disable xenlight for non-Xen platforms 2011-10-11 14:24:18 -06:00
autobuild.sh Remove the Open Nebula driver 2011-03-28 14:09:11 +01:00
autogen.sh build: avoid problems with autogen.sh runs from tarball 2011-02-12 06:28:28 -07:00
bootstrap build: fix compilation on mingw64 2011-08-19 07:20:10 -06:00
bootstrap.conf build: work around lack of MacOS fdatasync 2011-09-16 17:42:28 -06:00
cfg.mk Update examples for probing with systemtap 2011-10-11 11:26:15 +01:00
ChangeLog-old
configure.ac Release of libvirt-0.9.6 2011-09-22 14:53:23 +08:00
COPYING.LIB
HACKING Document STREQ_NULLABLE and STRNEQ_NULLABLE 2011-10-06 16:50:38 +02:00
libvirt.pc.in
libvirt.spec.in build: fix 'make rpm' 2011-10-11 15:44:55 -06:00
Makefile.am maint: add missing copyright notices 2011-07-28 15:01:17 -06:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
mingw32-libvirt.spec.in snapshot: update rng to support full domain in xml 2011-09-03 08:12:13 -06:00
README
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>