Re: [PATCH v2 4/5] qemu: parse USB keyboard qemu command line.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/05/2013 09:17 AM, Li Zhang wrote:
> From: Li Zhang <zhlcindy@xxxxxxxxxxxxxxxxxx>
> 
> This patch is to parse USB keyboard qemu command line

s/parse/format/

> and add test cases for it.
> 
> Signed-off-by: Li Zhang <zhlcindy@xxxxxxxxxxxxxxxxxx>
> ---
>  src/qemu/qemu_command.c                               | 18 +++++++++++++++---
>  .../qemuxml2argv-pseries-usb-kbd.args                 |  9 +++++++++
>  .../qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.xml | 19 +++++++++++++++++++
>  tests/qemuxml2argvtest.c                              |  3 +++
>  4 files changed, 46 insertions(+), 3 deletions(-)
>  create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.args
>  create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-pseries-usb-kbd.xml
> 
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 9539be7..d65fe27 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -5307,9 +5307,21 @@ qemuBuildUSBInputDevStr(virDomainDefPtr def,
>  {
>      virBuffer buf = VIR_BUFFER_INITIALIZER;
>  
> -    virBufferAsprintf(&buf, "%s,id=%s",
> -                      dev->type == VIR_DOMAIN_INPUT_TYPE_MOUSE ?
> -                      "usb-mouse" : "usb-tablet", dev->info.alias);
> +    switch (dev->type) {
> +    case VIR_DOMAIN_INPUT_TYPE_MOUSE:
> +        virBufferAsprintf(&buf, "usb-mouse,id=%s", dev->info.alias);
> +        break;
> +    case VIR_DOMAIN_INPUT_TYPE_TABLET:
> +        virBufferAsprintf(&buf, "usb-tablet,id=%s", dev->info.alias);
> +        break;
> +    case VIR_DOMAIN_INPUT_TYPE_KBD:
> +        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_USB_KBD))

Missing virReportError.

> +            goto error;
> +        virBufferAsprintf(&buf, "usb-kbd,id=%s", dev->info.alias);
> +        break;

This would add a tablet if QEMU_CAPS_DEVICE is not supported:

        if (input->bus == VIR_DOMAIN_INPUT_BUS_USB) {
            if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) {
                char *optstr;
                virCommandAddArg(cmd, "-device");
                if (!(optstr = qemuBuildUSBInputDevStr(def, input, qemuCaps)))
                    goto error;
                virCommandAddArg(cmd, optstr);
                VIR_FREE(optstr);
            } else {
                virCommandAddArgList(cmd, "-usbdevice",
                                     input->type == VIR_DOMAIN_INPUT_TYPE_MOUSE
                                     ? "mouse" : "tablet", NULL);

            }
        }


Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]