On Fri, Mar 19, 2010 at 03:38:52PM +0000, Daniel P. Berrange wrote: > The current internal domain events API tracks callbacks based on > the function pointer, and only supports lifecycle events. This > adds new internal APIs for registering callbacks for other event > types. These new APIs are postfixed with the word 'ID' to indicate > that they operated based on event ID, instead of hardcoded to > lifecycle events > > * src/conf/domain_event.c, src/conf/domain_event.h, > src/libvirt_private.syms: Add new APIs for handling callbacks > for non-lifecycle events > --- > src/conf/domain_event.c | 169 ++++++++++++++++++++++++++++++++++++++++++--- > src/conf/domain_event.h | 28 +++++++- > src/libvirt_private.syms | 6 ++ > 3 files changed, 190 insertions(+), 13 deletions(-) > > diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c [...] > +no_memory: > + virReportOOMError(); > + > + if (event) { > + if (event->dom) > + VIR_FREE(event->dom->name); > + VIR_FREE(event->dom); > + } > + VIR_FREE(event); Probably worth having an event freeing routine of its own [...] > diff --git a/src/conf/domain_event.h b/src/conf/domain_event.h > index 8658631..5578cd9 100644 > --- a/src/conf/domain_event.h > +++ b/src/conf/domain_event.h > @@ -46,24 +46,50 @@ int virDomainEventCallbackListAdd(virConnectPtr conn, > void *opaque, > virFreeCallback freecb) > ATTRIBUTE_NONNULL(1); > +int virDomainEventCallbackListAddID(virConnectPtr conn, > + virDomainEventCallbackListPtr cbList, > + virDomainPtr dom, > + int eventID, > + virConnectDomainEventGenericCallback cb, > + void *opaque, > + virFreeCallback freecb) > + ATTRIBUTE_NONNULL(1); Hum, parameters 0 (conn), 4 (cb) could also be passed in NONNULL list I think ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list