chardev: add msmouse support to qapi

This patch adds 'msmouse' support to qapi and also switches over
the msmouse chardev initialization to the new qapi code path.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
diff --git a/backends/msmouse.c b/backends/msmouse.c
index 407ec87..61052fe 100644
--- a/backends/msmouse.c
+++ b/backends/msmouse.c
@@ -63,7 +63,7 @@
     g_free (chr);
 }
 
-static CharDriverState *qemu_chr_open_msmouse(QemuOpts *opts)
+CharDriverState *qemu_chr_open_msmouse(void)
 {
     CharDriverState *chr;
 
@@ -78,7 +78,7 @@
 
 static void register_types(void)
 {
-    register_char_driver("msmouse", qemu_chr_open_msmouse);
+    register_char_driver_qapi("msmouse", CHARDEV_BACKEND_KIND_MSMOUSE, NULL);
 }
 
 type_init(register_types);
diff --git a/include/char/char.h b/include/char/char.h
index afe0024..80e8e30 100644
--- a/include/char/char.h
+++ b/include/char/char.h
@@ -261,4 +261,7 @@
 
 CharDriverState *qemu_char_get_next_serial(void);
 
+/* msmouse */
+CharDriverState *qemu_chr_open_msmouse(void);
+
 #endif
diff --git a/qapi-schema.json b/qapi-schema.json
index 4ad92b0..86c04dc 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -3210,7 +3210,8 @@
                                        'socket' : 'ChardevSocket',
                                        'pty'    : 'ChardevDummy',
                                        'null'   : 'ChardevDummy',
-                                       'mux'    : 'ChardevMux' } }
+                                       'mux'    : 'ChardevMux',
+                                       'msmouse': 'ChardevDummy' } }
 
 ##
 # @ChardevReturn:
diff --git a/qemu-char.c b/qemu-char.c
index e6f67d8..e860ba3 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -3719,6 +3719,9 @@
         }
         chr = qemu_chr_open_mux(base);
         break;
+    case CHARDEV_BACKEND_KIND_MSMOUSE:
+        chr = qemu_chr_open_msmouse();
+        break;
     default:
         error_setg(errp, "unknown chardev backend (%d)", backend->kind);
         break;