[libvirt] [PATCH 08/10] Convert USB hostdevices over to -device
Daniel Veillard
veillard at redhat.com
Thu Dec 17 09:17:18 UTC 2009
On Tue, Dec 15, 2009 at 03:14:48PM +0000, Daniel P. Berrange wrote:
> The old syntax was
>
> -usbdevice host:PRODUCT:VENDOR
>
> Or
>
> -usbdevice host:BUS.DEV
>
> The new syntax is
>
> -device usb-host,product=PRODUCT,vendor=VENDOR
>
> Or
>
> -device usb-host,hostbus=BUS,hostaddr=DEV
> ---
> src/qemu/qemu_conf.c | 39 ++++++++++++++++++++++++++++-----------
> 1 files changed, 28 insertions(+), 11 deletions(-)
>
> diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
> index 7582319..ac322a7 100644
> --- a/src/qemu/qemu_conf.c
> +++ b/src/qemu/qemu_conf.c
> @@ -2596,8 +2596,13 @@ int qemudBuildCommandLine(virConnectPtr conn,
> virDomainInputDefPtr input = def->inputs[i];
>
> if (input->bus == VIR_DOMAIN_INPUT_BUS_USB) {
> - ADD_ARG_LIT("-usbdevice");
> - ADD_ARG_LIT(input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ? "mouse" : "tablet");
> + if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
> + ADD_ARG_LIT("-device");
> + ADD_ARG_LIT(input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ? "usb-mouse" : "usb-tablet");
> + } else {
> + ADD_ARG_LIT("-usbdevice");
> + ADD_ARG_LIT(input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ? "mouse" : "tablet");
> + }
> }
> }
>
> @@ -2814,22 +2819,34 @@ int qemudBuildCommandLine(virConnectPtr conn,
> /* USB */
> if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
> hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB) {
> - if(hostdev->source.subsys.u.usb.vendor) {
> - ret = virAsprintf(&usbdev, "host:%.4x:%.4x",
> - hostdev->source.subsys.u.usb.vendor,
> - hostdev->source.subsys.u.usb.product);
>
> + if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
> + ADD_ARG_LIT("-device");
> + if (hostdev->source.subsys.u.usb.vendor) {
> + ret = virAsprintf(&usbdev, "usb-host,vendor=%.4x,product=%.4x",
> + hostdev->source.subsys.u.usb.vendor,
> + hostdev->source.subsys.u.usb.product);
> + } else {
> + ret = virAsprintf(&usbdev, "usb-host,hostbus=%.3d,hostaddr=%.3d",
> + hostdev->source.subsys.u.usb.bus,
> + hostdev->source.subsys.u.usb.device);
> + }
> } else {
> + ADD_ARG_LIT("-usbdevice");
> + if (hostdev->source.subsys.u.usb.vendor) {
> + ret = virAsprintf(&usbdev, "host:%.4x:%.4x",
> + hostdev->source.subsys.u.usb.vendor,
> + hostdev->source.subsys.u.usb.product);
> + } else {
> ret = virAsprintf(&usbdev, "host:%.3d.%.3d",
> - hostdev->source.subsys.u.usb.bus,
> - hostdev->source.subsys.u.usb.device);
> + hostdev->source.subsys.u.usb.bus,
> + hostdev->source.subsys.u.usb.device);
> + }
> }
> if (ret < 0)
> goto error;
>
> - ADD_ARG_LIT("-usbdevice");
> - ADD_ARG_LIT(usbdev);
> - VIR_FREE(usbdev);
> + ADD_ARG(usbdev);
> }
>
> /* PCI */
ACK
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
daniel at veillard.com | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
More information about the libvir-list
mailing list