On 05/16/2013 10:01 AM, Jim Fehlig wrote: > Xen 4.3 fixes a mistake in the libxl event handler signature where the > event owned by the application was defined as const. Detect this and > define the libvirt libxl event handler signature appropriately. > --- > src/libxl/libxl_driver.c | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c > index b39e005..74e8331 100644 > --- a/src/libxl/libxl_driver.c > +++ b/src/libxl/libxl_driver.c > @@ -700,7 +700,12 @@ libxlVmReap(libxlDriverPrivatePtr driver, > * Handle previously registered event notification from libxenlight > */ > static void > -libxlEventHandler(void *data ATTRIBUTE_UNUSED, const libxl_event *event) > +libxlEventHandler(void *data ATTRIBUTE_UNUSED, > +#ifdef LIBXL_HAVE_NONCONST_EVENT_OCCURS_EVENT_ARG > + libxl_event *event) > +#else > + const libxl_event *event) > +#endif
This works, but I'm not a fan of mid-() #ifdefs (it doesn't work if the
() itself is part of a macro call). I'd much rather see:
#ifdef LIBXL_HAVE_NONCONST_EVENT_OCCURS_EVENT_ARG
# define VIR_LIBXL_EVENT_CONST /* empty */
#else
# define VIR_LIBXL_EVENT_CONST const
#endif
static void
libxlEventHandler(void *data ATTRIBUTE_UNUSED,
VIR_LIBXL_EVENT_CONST libxl_event *event)
{
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
