{"id":816673,"url":"http://patchwork.ozlabs.org/api/patches/816673/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/1505974414-6033-2-git-send-email-peterx@redhat.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1505974414-6033-2-git-send-email-peterx@redhat.com>","list_archive_url":null,"date":"2017-09-21T06:13:31","name":"[1/4] chardev: new qemu_chr_be_update_read_handlers()","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"9dfa8906c5665879362f6770ef9948072b8491d8","submitter":{"id":67717,"url":"http://patchwork.ozlabs.org/api/people/67717/?format=json","name":"Peter Xu","email":"peterx@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/1505974414-6033-2-git-send-email-peterx@redhat.com/mbox/","series":[{"id":4302,"url":"http://patchwork.ozlabs.org/api/series/4302/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=4302","date":"2017-09-21T06:13:30","name":"chardev: support non-default gcontext","version":1,"mbox":"http://patchwork.ozlabs.org/series/4302/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/816673/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/816673/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx01.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx01.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=peterx@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xyRCW3GDzz9t3C\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 16:14:31 +1000 (AEST)","from localhost ([::1]:51965 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duukn-0005qz-GI\n\tfor incoming@patchwork.ozlabs.org; Thu, 21 Sep 2017 02:14:29 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:34027)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <peterx@redhat.com>) id 1duukF-0005qL-E6\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 02:13:56 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <peterx@redhat.com>) id 1duukD-0007jm-HI\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 02:13:55 -0400","from mx1.redhat.com ([209.132.183.28]:45416)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <peterx@redhat.com>) id 1duukD-0007i8-8e\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 02:13:53 -0400","from smtp.corp.redhat.com\n\t(int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 5795481DF3\n\tfor <qemu-devel@nongnu.org>; Thu, 21 Sep 2017 06:13:52 +0000 (UTC)","from pxdev.xzpeter.org.com (dhcp-15-224.nay.redhat.com\n\t[10.66.15.224])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 4C1AA5D6A4;\n\tThu, 21 Sep 2017 06:13:49 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 5795481DF3","From":"Peter Xu <peterx@redhat.com>","To":"qemu-devel@nongnu.org","Date":"Thu, 21 Sep 2017 14:13:31 +0800","Message-Id":"<1505974414-6033-2-git-send-email-peterx@redhat.com>","In-Reply-To":"<1505974414-6033-1-git-send-email-peterx@redhat.com>","References":"<1505974414-6033-1-git-send-email-peterx@redhat.com>","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.15","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.25]);\n\tThu, 21 Sep 2017 06:13:52 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"[Qemu-devel] [PATCH 1/4] chardev: new\n\tqemu_chr_be_update_read_handlers()","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Juan Quintela <quintela@redhat.com>, \"Dr . David Alan Gilbert\"\n\t<dgilbert@redhat.com>, peterx@redhat.com, =?utf-8?q?Marc-Andr=C3=A9_L?=\n\t=?utf-8?q?ureau?= <marcandre.lureau@redhat.com>,\n\tPaolo Bonzini <pbonzini@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Add a wrapper for the chr_update_read_handler().\n\nSigned-off-by: Peter Xu <peterx@redhat.com>\n---\n chardev/char-fe.c      |  7 ++-----\n chardev/char.c         | 10 ++++++++++\n include/chardev/char.h | 10 ++++++++++\n 3 files changed, 22 insertions(+), 5 deletions(-)","diff":"diff --git a/chardev/char-fe.c b/chardev/char-fe.c\nindex f3af6ae..5f76e7e 100644\n--- a/chardev/char-fe.c\n+++ b/chardev/char-fe.c\n@@ -253,7 +253,6 @@ void qemu_chr_fe_set_handlers(CharBackend *b,\n                               bool set_open)\n {\n     Chardev *s;\n-    ChardevClass *cc;\n     int fe_open;\n \n     s = b->chr;\n@@ -261,7 +260,6 @@ void qemu_chr_fe_set_handlers(CharBackend *b,\n         return;\n     }\n \n-    cc = CHARDEV_GET_CLASS(s);\n     if (!opaque && !fd_can_read && !fd_read && !fd_event) {\n         fe_open = 0;\n         remove_fd_in_watch(s);\n@@ -273,9 +271,8 @@ void qemu_chr_fe_set_handlers(CharBackend *b,\n     b->chr_event = fd_event;\n     b->chr_be_change = be_change;\n     b->opaque = opaque;\n-    if (cc->chr_update_read_handler) {\n-        cc->chr_update_read_handler(s, context);\n-    }\n+\n+    qemu_chr_be_update_read_handlers(s);\n \n     if (set_open) {\n         qemu_chr_fe_set_open(b, fe_open);\ndiff --git a/chardev/char.c b/chardev/char.c\nindex b6fd5eb..e090dd5 100644\n--- a/chardev/char.c\n+++ b/chardev/char.c\n@@ -180,6 +180,16 @@ void qemu_chr_be_write(Chardev *s, uint8_t *buf, int len)\n     }\n }\n \n+void qemu_chr_be_update_read_handlers(Chardev *s,\n+                                      GMainContext *context)\n+{\n+    ChardevClass *cc = CHARDEV_GET_CLASS(s);\n+\n+    if (cc->chr_update_read_handler) {\n+        cc->chr_update_read_handler(s, context);\n+    }\n+}\n+\n int qemu_chr_add_client(Chardev *s, int fd)\n {\n     return CHARDEV_GET_CLASS(s)->chr_add_client ?\ndiff --git a/include/chardev/char.h b/include/chardev/char.h\nindex 66dde46..2068ea4 100644\n--- a/include/chardev/char.h\n+++ b/include/chardev/char.h\n@@ -169,6 +169,16 @@ void qemu_chr_be_write(Chardev *s, uint8_t *buf, int len);\n void qemu_chr_be_write_impl(Chardev *s, uint8_t *buf, int len);\n \n /**\n+ * @qemu_chr_be_update_read_handlers:\n+ *\n+ * Invoked when frontend read handlers are setup\n+ *\n+ * @context the gcontext that will be used to attach the watch sources\n+ */\n+void qemu_chr_be_update_read_handlers(Chardev *s,\n+                                      GMainContext *context);\n+\n+/**\n  * @qemu_chr_be_event:\n  *\n  * Send an event from the back end to the front end.\n","prefixes":["1/4"]}