[libvirt] [PATCH 5/5] Allow for a driver specific private data blob in virDomainObjPtr
Daniel P. Berrange
berrange at redhat.com
Fri Oct 16 08:42:26 UTC 2009
On Thu, Oct 15, 2009 at 11:41:56PM +0200, Matthias Bolte wrote:
> 2009/10/14 Daniel P. Berrange <berrange at redhat.com>:
> > The virDomainObjPtr object stores state about a running domain.
> > This object is shared across all drivers so it is not appropriate
> > to include driver specific state here. This patch adds the ability
> > to request a blob of private data per domain object instance. The
> > driver must provide a allocator & deallocator for this purpose
> >
> > THis patch abuses the virCapabilitiesPtr structure for storing the
> > allocator/deallocator callbacks, since it is already being abused
> > for other internal things relating to parsing. This should be moved
> > out into a separate object at some point.
> >
> > * src/conf/capabilities.h: Add privateDataAllocFunc and
> > privateDataFreeFunc fields
> > * src/conf/domain_conf.c: Invoke the driver allocators / deallocators
> > when creating/freeing virDomainObjPtr instances.
> > * src/conf/domain_conf.h: Pass virCapsPtr into virDomainAssignDef
> > to allow access to the driver specific allocator function
> > * src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
> > src/openvz/openvz_driver.c, src/qemu/qemu_driver.c,
> > src/test/test_driver.c, src/uml/uml_driver.c: Update for
> > change in virDomainAssignDef contract
> > ---
> > src/conf/capabilities.h | 2 ++
> > src/conf/domain_conf.c | 23 +++++++++++++++++++----
> > src/conf/domain_conf.h | 4 ++++
> > src/lxc/lxc_driver.c | 6 ++++--
> > src/opennebula/one_driver.c | 6 ++++--
> > src/openvz/openvz_driver.c | 6 ++++--
> > src/qemu/qemu_driver.c | 5 +++++
> > src/test/test_driver.c | 15 ++++++++++-----
> > src/uml/uml_driver.c | 2 ++
> > 9 files changed, 54 insertions(+), 15 deletions(-)
> >
> > diff --git a/src/conf/capabilities.h b/src/conf/capabilities.h
> > index 2f24605..7234cf4 100644
> > --- a/src/conf/capabilities.h
> > +++ b/src/conf/capabilities.h
> > @@ -115,6 +115,8 @@ struct _virCaps {
> > virCapsGuestPtr *guests;
> > unsigned char macPrefix[VIR_MAC_PREFIX_BUFLEN];
> > unsigned int emulatorRequired : 1;
> > + void *(*privateDataAllocFunc)(void);
> > + void (*privateDataFreeFunc)(void *);
> > };
>
> Maybe add a comment here that this should be moved out into a separate
> object at some point.
>
> ACK.
>
> PS: What's the specific use case for this?
It going to be used by the QEMU monitor re-write I'm working on. That's
not ready to send out for review yet, but hopefully in a day or two
Daniel
--
|: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|
More information about the libvir-list
mailing list