From 2d57286da6e57aacf3b2d0d3354d543ed100a485 Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Thu, 21 Feb 2013 12:56:10 +0100 Subject: [PATCH] chardev: add braille support to qapi This patch adds 'braille' support to qapi and also switches over the braille chardev initialization to the new qapi code path. Signed-off-by: Gerd Hoffmann --- backends/baum.c | 4 ++-- include/char/char.h | 3 +++ qapi-schema.json | 3 ++- qemu-char.c | 5 +++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/backends/baum.c b/backends/baum.c index 9063aea2cf..d7d658c224 100644 --- a/backends/baum.c +++ b/backends/baum.c @@ -561,7 +561,7 @@ static void baum_close(struct CharDriverState *chr) g_free(baum); } -static CharDriverState *chr_baum_init(QemuOpts *opts) +CharDriverState *chr_baum_init(void) { BaumDriverState *baum; CharDriverState *chr; @@ -627,7 +627,7 @@ fail_handle: static void register_types(void) { - register_char_driver("braille", chr_baum_init); + register_char_driver_qapi("braille", CHARDEV_BACKEND_KIND_BRAILLE, NULL); } type_init(register_types); diff --git a/include/char/char.h b/include/char/char.h index 80e8e30e15..d6a03513bf 100644 --- a/include/char/char.h +++ b/include/char/char.h @@ -264,4 +264,7 @@ CharDriverState *qemu_char_get_next_serial(void); /* msmouse */ CharDriverState *qemu_chr_open_msmouse(void); +/* baum.c */ +CharDriverState *chr_baum_init(void); + #endif diff --git a/qapi-schema.json b/qapi-schema.json index 86c04dc9ff..3c5c0fbc27 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3211,7 +3211,8 @@ 'pty' : 'ChardevDummy', 'null' : 'ChardevDummy', 'mux' : 'ChardevMux', - 'msmouse': 'ChardevDummy' } } + 'msmouse': 'ChardevDummy', + 'braille': 'ChardevDummy' } } ## # @ChardevReturn: diff --git a/qemu-char.c b/qemu-char.c index e860ba30aa..1692aa8367 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3722,6 +3722,11 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, case CHARDEV_BACKEND_KIND_MSMOUSE: chr = qemu_chr_open_msmouse(); break; +#ifdef CONFIG_BRLAPI + case CHARDEV_BACKEND_KIND_BRAILLE: + chr = chr_baum_init(); + break; +#endif default: error_setg(errp, "unknown chardev backend (%d)", backend->kind); break; -- GitLab