On 2014年02月13日 20:37, Ján Tomko wrote:
On 02/13/2014 09:48 AM, Li Zhang wrote:
> From: Li Zhang <zhlcindy(a)linux.vnet.ibm.com>
>
> PS2 device only works for X86 platform, other platforms may need
> USB mouse. Athough it doesn't influence the QEMU command line, but
> it's not right to add one PS2 mouse for non-X86 platform.
>
> What's more, PS2 keyboard can be supported for X86.
>
> So, this patch is to remove PS2 mouse for non-x86 platforms and also add
> an implicit PS2 keyboard device for X86.
>
> Signed-off-by: Li Zhang <zhlcindy(a)linux.vnet.ibm.com>
> ---
> src/conf/domain_conf.c | 70 +++++++++++-----------
> src/util/virarch.h | 2 +
> .../qemuxml2argvdata/qemuxml2argv-pseries-disk.xml | 1 -
> 3 files changed, 37 insertions(+), 36 deletions(-)
> @@ -17525,16 +17524,17 @@ virDomainDefFormatInternal(virDomainDefPtr def,
> }
>
> if (def->ngraphics > 0) {
> - /* If graphics is enabled, add the implicit mouse */
> - virDomainInputDef autoInput = {
> - VIR_DOMAIN_INPUT_TYPE_MOUSE,
> - STREQ(def->os.type, "hvm") ?
> - VIR_DOMAIN_INPUT_BUS_PS2 : VIR_DOMAIN_INPUT_BUS_XEN,
> - { .alias = NULL },
> - };
> -
> - if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
> - goto error;
> + /* If graphics is enabled, add the implicit mouse/keyboard */
Just mouse.
Oh, right, I forgot change it.
> + if (ARCH_IS_X86(def->os.arch)) {
This fails 'make check' in 'sexpr2xmltest'. It seems arch is set to
'NONE'
when we convert xen s-expression to our XML.
I think we should add these for VIR_ARCH_NONE as well.
Ok, I will do it in next version.
> + virDomainInputDef autoInput = {
> + VIR_DOMAIN_INPUT_TYPE_MOUSE,
> + STREQ(def->os.type, "hvm") ?
> + VIR_DOMAIN_INPUT_BUS_PS2 : VIR_DOMAIN_INPUT_BUS_XEN,
> + { .alias = NULL },
> + };
> + if (virDomainInputDefFormat(buf, &autoInput, flags) < 0)
> + goto error;
> + }
>
> for (n = 0; n < def->ngraphics; n++)
> if (virDomainGraphicsDefFormat(buf, def->graphics[n], flags) <
0)
> diff --git a/src/util/virarch.h b/src/util/virarch.h
> index b180400..9b66e43 100644
> --- a/src/util/virarch.h
> +++ b/src/util/virarch.h
> @@ -70,6 +70,8 @@ typedef enum {
> VIR_ARCH_LAST,
> } virArch;
>
> +#define ARCH_IS_X86(arch) ((arch) == VIR_ARCH_X86_64 ||\
> + (arch) == VIR_ARCH_I686)
This fails 'make syntax-check':
cppi: src/util/virarch.h: line 73: not properly indented
I will correct it in next version soon.
There should be a space between # and define, see:
http://libvirt.org/hacking.html#preprocessor
Other than that, this patch looks okay to me.
Thanks. :)
Jan