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

Li Zhang zhlcindy at gmail.com
Fri Dec 6 06:18:23 UTC 2013


On 2013年12月05日 18:11, Ján Tomko wrote:
> On 12/05/2013 09:17 AM, Li Zhang wrote:
>> From: Li Zhang <zhlcindy at linux.vnet.ibm.com>
>>
>> This patch is to parse USB keyboard qemu command line
> s/parse/format/
OK.

>
>> and add test cases for it.
>>
>> Signed-off-by: Li Zhang <zhlcindy at linux.vnet.ibm.com>
>> ---
>>   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.

I will add it.

>
>> +            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);
>
>              }
>          }
>

You are right, I need to clean all these mouse/tablet code.
I will do it in my next version.





More information about the libvir-list mailing list