From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35206) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlY56-0003LP-FZ for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:03:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZlY51-0006mz-8u for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:03:40 -0400 Received: from mx1.redhat.com ([209.132.183.28]:35135) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZlY51-0006mu-2s for qemu-devel@nongnu.org; Mon, 12 Oct 2015 04:03:35 -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 AEE13C0C1B1A for ; Mon, 12 Oct 2015 08:03:34 +0000 (UTC) From: Paolo Bonzini Date: Mon, 12 Oct 2015 10:03:07 +0200 Message-Id: <1444637004-20195-5-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 04/21] qemu-char: convert file 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 --- qemu-char.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/qemu-char.c b/qemu-char.c index a6411d6..13fd394 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -4010,8 +4010,12 @@ QemuOptsList qemu_chardev_opts = { #ifdef _WIN32 -static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp) +static CharDriverState *qmp_chardev_open_file(const char *id, + ChardevBackend *backend, + ChardevReturn *ret, + Error **errp) { + ChardevFile *file = backend->file; HANDLE out; if (file->has_in) { @@ -4055,8 +4059,12 @@ static int qmp_chardev_open_file_source(char *src, int flags, return fd; } -static CharDriverState *qmp_chardev_open_file(ChardevFile *file, Error **errp) +static CharDriverState *qmp_chardev_open_file(const char *id, + ChardevBackend *backend, + ChardevReturn *ret, + Error **errp) { + ChardevFile *file = backend->file; int flags, in = -1, out; flags = O_WRONLY | O_TRUNC | O_CREAT | O_BINARY; @@ -4242,7 +4250,7 @@ ChardevReturn *qmp_chardev_add(const char *id, ChardevBackend *backend, if (chr == NULL) { switch (backend->kind) { case CHARDEV_BACKEND_KIND_FILE: - chr = qmp_chardev_open_file(backend->file, &local_err); + abort(); break; #ifdef HAVE_CHARDEV_SERIAL case CHARDEV_BACKEND_KIND_SERIAL: @@ -4380,7 +4388,7 @@ static void register_types(void) register_char_driver("ringbuf", CHARDEV_BACKEND_KIND_RINGBUF, qemu_chr_parse_ringbuf, NULL); register_char_driver("file", CHARDEV_BACKEND_KIND_FILE, - qemu_chr_parse_file_out, NULL); + qemu_chr_parse_file_out, qmp_chardev_open_file); register_char_driver("stdio", CHARDEV_BACKEND_KIND_STDIO, qemu_chr_parse_stdio, NULL); register_char_driver("serial", CHARDEV_BACKEND_KIND_SERIAL, -- 2.5.0