On 2014年02月17日 17:17, Ján Tomko wrote:
On 02/17/2014 10:04 AM, Li Zhang wrote:
On 2014年02月17日 16:48, Ján Tomko wrote:
On 02/17/2014 08:33 AM, Li Zhang wrote:
From: Li Zhang <zhlci...@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 <zhlci...@linux.vnet.ibm.com>
---
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3301398..10c753c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -12495,29 +12496,27 @@ virDomainDefParseXML(xmlDocPtr xml,
       VIR_FREE(nodes);
         /* If graphics are enabled, there's an implicit PS2 mouse */
-    if (def->ngraphics > 0) {
-        virDomainInputDefPtr input;
+    if (def->ngraphics > 0 &&
+        ARCH_IS_X86(def->os.arch)) {
+        int input_bus = VIR_DOMAIN_INPUT_BUS_XEN;
   -        if (VIR_ALLOC(input) < 0) {
-            goto error;
-        }
-        if (STREQ(def->os.type, "hvm")) {
-            input->type = VIR_DOMAIN_INPUT_TYPE_MOUSE;
-            input->bus = VIR_DOMAIN_INPUT_BUS_PS2;
-        } else {
-            input->type = VIR_DOMAIN_INPUT_TYPE_MOUSE;
-            input->bus = VIR_DOMAIN_INPUT_BUS_XEN;
-        }
+        if (STREQ(def->os.type, "hvm"))
+            input_bus = VIR_DOMAIN_INPUT_BUS_PS2;
   -        if (VIR_REALLOC_N(def->inputs, def->ninputs + 1) < 0) {
-            virDomainInputDefFree(input);
+        if (virDomainDefMaybeAddInput(def,
+                                      VIR_DOMAIN_INPUT_TYPE_MOUSE,
+                                      input_bus) < 0)
               goto error;
+
+        /*Ignore keyboard for XEN, only add a PS2 keyboard device for hvm*/
+        if (STREQ(def->os.type, "hvm")) {
+            if (virDomainDefMaybeAddInput(def,
+                                          VIR_DOMAIN_INPUT_TYPE_KBD,
+                                          input_bus) < 0)
+                goto error;
           }
Adding the default keyboard should be in the patch that adds it to the parser
according to
https://www.redhat.com/archives/libvir-list/2014-February/msg00889.html
Do you mean merge this patch to the first patch?

I mean merging the part dealing with keyboards with the first patch and only
touch the implicit mouse in this patch.

okay, get it. I will send out the next versions. :)


Jan


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

Reply via email to