Marek Marczykowski-Górecki wrote: > Signed-off-by: Marek Marczykowski-Górecki <marmarek@xxxxxxxxxxxxxxxxxxxxxx> > --- > Changes in v2: > - rebase on 1.2.12+ > - multiple devices support > > src/libxl/libxl_conf.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c > index 4730585..b1131ea 100644 > --- a/src/libxl/libxl_conf.c > +++ b/src/libxl/libxl_conf.c > @@ -815,6 +815,54 @@ libxlMakeDomBuildInfo(virDomainDefPtr def, > } > } > > + if (def->ninputs) { > +#ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST > + if (VIR_ALLOC_N(b_info->u.hvm.usbdevice_list, def->ninputs+1) < 0) > + return -1; > +#else > + if (def->ninputs > 1) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("libxenlight supports only one input device")); > + return -1; > + } > +#endif > + for (i = 0; i < def->ninputs; i++) { > + if (def->inputs[i]->bus != VIR_DOMAIN_INPUT_BUS_USB) { > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("libxenlight supports only USB input")); > + return -1; > + } > + } > > + for (i = 0; i < def->ninputs; i++) { > + switch (def->inputs[i]->type) { > + case VIR_DOMAIN_INPUT_TYPE_MOUSE: > +#ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST > + if (VIR_STRDUP(b_info->u.hvm.usbdevice_list[i], "mouse") < 0) > + return -1; > +#else > + VIR_FREE(b_info->u.hvm.usbdevice); > + if (VIR_STRDUP(b_info->u.hvm.usbdevice, "mouse") < 0) > + return -1; > +#endif > + break; > + case VIR_DOMAIN_INPUT_TYPE_TABLET: > +#ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST > + if (VIR_STRDUP(b_info->u.hvm.usbdevice_list[i], "tablet") < 0) > + return -1; > +#else > + VIR_FREE(b_info->u.hvm.usbdevice); > + if (VIR_STRDUP(b_info->u.hvm.usbdevice, "tablet") < 0) > + return -1; > +#endif > One of the #ifdef could be dropped with something like for (i=0; i < def->ninputs; i++) { char *temp; #ifdef LIBXL_HAVE_BUILDINFO_USBDEVICE_LIST temp = b_info->u.hvm.usbdevice_list[i]; #else temp = b_info->u.hvm.usbdevice; #endif ... VIR_STRDUP(temp, "mouse"); ... } Also, could you look into adding support for usbdevice_list to the parsing/formating code in src/xenconfig? Regards, Jim > + break; > + default: > + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", > + _("Unknown input device type")); > + return -1; > + } > + } > + } > + > /* > * The following comment and calculation were taken directly from > * libxenlight's internal function libxl_get_required_shadow_memory(): > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list