From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35465) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlY5S-00040C-8M for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:04:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlY5P-0006wf-P4 for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:04:02 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56260) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlY5P-0006wY-Ay for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:03:59 -0400 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id EF8E72F9112 for ; Mon, 12 Oct 2015 08:03:58 +0000 (UTC) From: Paolo Bonzini Date: Mon, 12 Oct 2015 10:03:22 +0200 Message-Id: <1444637004-20195-20-git-send-email-pbonzini@redhat.com> In-Reply-To: <1444637004-20195-1-git-send-email-pbonzini@redhat.com> References: <1444637004-20195-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 19/21] qemu-char: convert vc backend to data-driven creation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com Signed-off-by: Paolo Bonzini --- include/sysemu/char.h | 5 ++--- qemu-char.c | 2 +- stubs/Makefile.objs | 1 - stubs/vc-init.c | 7 ------- ui/console.c | 10 ++++++---- ui/gtk.c | 2 +- 6 files changed, 10 insertions(+), 17 deletions(-) delete mode 100644 stubs/vc-init.c diff --git a/include/sysemu/char.h b/include/sysemu/char.h index 5c28c16..edf7669 100644 --- a/include/sysemu/char.h +++ b/include/sysemu/char.h @@ -357,8 +357,7 @@ extern int term_escape_char; CharDriverState *qemu_char_get_next_serial(void); /* console.c */ -typedef CharDriverState *(VcHandler)(ChardevVC *vc); - +typedef CharDriverState *(VcHandler)(ChardevVC *vc, Error **errp); void register_vc_handler(VcHandler *handler); -CharDriverState *vc_init(ChardevVC *vc); + #endif diff --git a/qemu-char.c b/qemu-char.c index 43205ae..7ef1293 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -4366,7 +4366,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, abort(); break; case CHARDEV_BACKEND_KIND_VC: - chr = vc_init(backend->vc); + abort(); break; case CHARDEV_BACKEND_KIND_RINGBUF: case CHARDEV_BACKEND_KIND_MEMORY: diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 6d4363d..1862f84 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -27,7 +27,6 @@ stub-obj-y += set-fd-handler.o stub-obj-y += slirp.o stub-obj-y += sysbus.o stub-obj-y += uuid.o -stub-obj-y += vc-init.o stub-obj-y += vm-stop.o stub-obj-y += vmstate.o stub-obj-$(CONFIG_WIN32) += fd-register.o diff --git a/stubs/vc-init.c b/stubs/vc-init.c deleted file mode 100644 index 308dfa0..0000000 --- a/stubs/vc-init.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "qemu-common.h" -#include "sysemu/char.h" - -CharDriverState *vc_init(ChardevVC *vc) -{ - return 0; -} diff --git a/ui/console.c b/ui/console.c index 746b23a..5e94b0f 100644 --- a/ui/console.c +++ b/ui/console.c @@ -1899,7 +1899,7 @@ static void text_console_do_init(CharDriverState *chr, DisplayState *ds) chr->init(chr); } -static CharDriverState *text_console_init(ChardevVC *vc) +static CharDriverState *text_console_init(ChardevVC *vc, Error **errp) { CharDriverState *chr; QemuConsole *s; @@ -1930,6 +1930,7 @@ static CharDriverState *text_console_init(ChardevVC *vc) if (!s) { g_free(chr); + error_setg(errp, "cannot create text console"); return NULL; } @@ -1949,9 +1950,10 @@ static CharDriverState *text_console_init(ChardevVC *vc) static VcHandler *vc_handler = text_console_init; -CharDriverState *vc_init(ChardevVC *vc) +static CharDriverState *vc_init(const char *id, ChardevBackend *backend, + ChardevReturn *ret, Error **errp) { - return vc_handler(vc); + return vc_handler(backend->vc, errp); } void register_vc_handler(VcHandler *handler) @@ -2031,7 +2033,7 @@ static void register_types(void) { type_register_static(&qemu_console_info); register_char_driver("vc", CHARDEV_BACKEND_KIND_VC, qemu_chr_parse_vc, - NULL); + vc_init); } type_init(register_types); diff --git a/ui/gtk.c b/ui/gtk.c index 3057cdc..9731761 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -1522,7 +1522,7 @@ static int gd_vc_chr_write(CharDriverState *chr, const uint8_t *buf, int len) static int nb_vcs; static CharDriverState *vcs[MAX_VCS]; -static CharDriverState *gd_vc_handler(ChardevVC *unused) +static CharDriverState *gd_vc_handler(ChardevVC *unused, Error **errp) { CharDriverState *chr; -- 2.5.0