From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50813) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn0jU-00050c-HM for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:51:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zn0jR-0007ST-BA for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:51:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53374) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zn0jR-0007SK-5c for qemu-devel@nongnu.org; Fri, 16 Oct 2015 04:51:21 -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 C2BDC40C59 for ; Fri, 16 Oct 2015 08:51:20 +0000 (UTC) Received: from donizetti.redhat.com (ovpn-112-80.ams2.redhat.com [10.36.112.80]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9G8oCb3010200 for ; Fri, 16 Oct 2015 04:51:19 -0400 From: Paolo Bonzini Date: Fri, 16 Oct 2015 10:50:04 +0200 Message-Id: <1444985411-17803-43-git-send-email-pbonzini@redhat.com> In-Reply-To: <1444985411-17803-1-git-send-email-pbonzini@redhat.com> References: <1444985411-17803-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 42/49] qemu-char: convert ringbuf backend to data-driven creation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Reviewed-by: Eric Blake Signed-off-by: Paolo Bonzini --- qemu-char.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index d4623a4..370060d 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -3222,9 +3222,12 @@ static void ringbuf_chr_close(struct CharDriverState *chr) chr->opaque = NULL; } -static CharDriverState *qemu_chr_open_ringbuf(ChardevRingbuf *opts, +static CharDriverState *qemu_chr_open_ringbuf(const char *id, + ChardevBackend *backend, + ChardevReturn *ret, Error **errp) { + ChardevRingbuf *opts = backend->ringbuf; CharDriverState *chr; RingBufCharDriver *d; @@ -4370,7 +4373,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, break; case CHARDEV_BACKEND_KIND_RINGBUF: case CHARDEV_BACKEND_KIND_MEMORY: - chr = qemu_chr_open_ringbuf(backend->ringbuf, &local_err); + abort(); break; default: error_setg(errp, "unknown chardev backend (%d)", backend->kind); @@ -4436,7 +4439,7 @@ static void register_types(void) register_char_driver("udp", CHARDEV_BACKEND_KIND_UDP, qemu_chr_parse_udp, qmp_chardev_open_udp); register_char_driver("ringbuf", CHARDEV_BACKEND_KIND_RINGBUF, - qemu_chr_parse_ringbuf, NULL); + qemu_chr_parse_ringbuf, qemu_chr_open_ringbuf); register_char_driver("file", CHARDEV_BACKEND_KIND_FILE, qemu_chr_parse_file_out, qmp_chardev_open_file); register_char_driver("stdio", CHARDEV_BACKEND_KIND_STDIO, @@ -4467,7 +4470,7 @@ static void register_types(void) qemu_chr_open_mux); /* Bug-compatibility: */ register_char_driver("memory", CHARDEV_BACKEND_KIND_MEMORY, - qemu_chr_parse_ringbuf, NULL); + qemu_chr_parse_ringbuf, qemu_chr_open_ringbuf); /* this must be done after machine init, since we register FEs with muxes * as part of realize functions like serial_isa_realizefn when -nographic * is specified -- 2.5.0