From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v3 01/25] chardev: Simplify IOWatchPoll::fd_can_read as a GSourceFunc Date: Wed, 20 Feb 2019 02:02:08 +0100 Message-ID: <20190220010232.18731-2-philmd@redhat.com> References: <20190220010232.18731-1-philmd@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gwGI5-00009L-Qx for xen-devel@lists.xenproject.org; Wed, 20 Feb 2019 01:03:13 +0000 In-Reply-To: <20190220010232.18731-1-philmd@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org, Prasad J Pandit , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Cc: Corey Minyard , Stefano Stabellini , Samuel Thibault , Li Zhijian , Amit Shah , "Michael S. Tsirkin" , Jason Wang , Cornelia Huck , Halil Pasic , Christian Borntraeger , qemu-s390x@nongnu.org, Paul Durrant , qemu-ppc@nongnu.org, Gerd Hoffmann , Pavel Dovgalyuk , Zhang Chen , Anthony Perard , xen-devel@lists.xenproject.org, Stefan Berger , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , David Gibson List-Id: xen-devel@lists.xenproject.org SU9XYXRjaFBvbGw6OmZkX2Nhbl9yZWFkKCkgcmVhbGx5IGlzIGEgR1NvdXJjZUZ1bmMgdHlwZSwg aXQgc2ltcGx5CnJldHVybnMgYSBib29sZWFuIHZhbHVlLgpVcGRhdGUgdGhlIGJhY2tlbmRzIHRv IHJldHVybiBhIGJvb2xlYW4sIHdoZXRoZXIgdGhlcmUgaXMgZGF0YSB0bwpyZWFkIGZyb20gdGhl IHNvdXJjZSBvciBub3QuCgpTdWdnZXN0ZWQtYnk6IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJl ZGhhdC5jb20+ClNpZ25lZC1vZmYtYnk6IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpIDxwaGlsbWRA cmVkaGF0LmNvbT4KLS0tCiBjaGFyZGV2L2NoYXItZmQuYyAgICAgICAgIHwgNCArKy0tCiBjaGFy ZGV2L2NoYXItaW8uYyAgICAgICAgIHwgNiArKystLS0KIGNoYXJkZXYvY2hhci1wdHkuYyAgICAg ICAgfCA0ICsrLS0KIGNoYXJkZXYvY2hhci1zb2NrZXQuYyAgICAgfCA2ICsrKy0tLQogY2hhcmRl di9jaGFyLXVkcC5jICAgICAgICB8IDQgKystLQogaW5jbHVkZS9jaGFyZGV2L2NoYXItaW8uaCB8 IDIgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY2hhcmRldi9jaGFyLWZkLmMgYi9jaGFyZGV2L2NoYXItZmQuYwppbmRl eCAyYzliMmNlNTY3Li4yNDIxZDhlMjE2IDEwMDY0NAotLS0gYS9jaGFyZGV2L2NoYXItZmQuYwor KysgYi9jaGFyZGV2L2NoYXItZmQuYwpAQCAtNjksMTMgKzY5LDEzIEBAIHN0YXRpYyBnYm9vbGVh biBmZF9jaHJfcmVhZChRSU9DaGFubmVsICpjaGFuLCBHSU9Db25kaXRpb24gY29uZCwgdm9pZCAq b3BhcXVlKQogICAgIHJldHVybiBUUlVFOwogfQogCi1zdGF0aWMgaW50IGZkX2Nocl9yZWFkX3Bv bGwodm9pZCAqb3BhcXVlKQorc3RhdGljIGdib29sZWFuIGZkX2Nocl9yZWFkX3BvbGwodm9pZCAq b3BhcXVlKQogewogICAgIENoYXJkZXYgKmNociA9IENIQVJERVYob3BhcXVlKTsKICAgICBGRENo YXJkZXYgKnMgPSBGRF9DSEFSREVWKG9wYXF1ZSk7CiAKICAgICBzLT5tYXhfc2l6ZSA9IHFlbXVf Y2hyX2JlX2Nhbl93cml0ZShjaHIpOwotICAgIHJldHVybiBzLT5tYXhfc2l6ZTsKKyAgICByZXR1 cm4gcy0+bWF4X3NpemUgPiAwOwogfQogCiBzdGF0aWMgR1NvdXJjZSAqZmRfY2hyX2FkZF93YXRj aChDaGFyZGV2ICpjaHIsIEdJT0NvbmRpdGlvbiBjb25kKQpkaWZmIC0tZ2l0IGEvY2hhcmRldi9j aGFyLWlvLmMgYi9jaGFyZGV2L2NoYXItaW8uYwppbmRleCA4Y2VkMTg0MTYwLi4yYzFjNjkwOThl IDEwMDY0NAotLS0gYS9jaGFyZGV2L2NoYXItaW8uYworKysgYi9jaGFyZGV2L2NoYXItaW8uYwpA QCAtMzAsNyArMzAsNyBAQCB0eXBlZGVmIHN0cnVjdCBJT1dhdGNoUG9sbCB7CiAgICAgUUlPQ2hh bm5lbCAqaW9jOwogICAgIEdTb3VyY2UgKnNyYzsKIAotICAgIElPQ2FuUmVhZEhhbmRsZXIgKmZk X2Nhbl9yZWFkOworICAgIEdTb3VyY2VGdW5jIGZkX2Nhbl9yZWFkOwogICAgIEdTb3VyY2VGdW5j IGZkX3JlYWQ7CiAgICAgdm9pZCAqb3BhcXVlOwogfSBJT1dhdGNoUG9sbDsKQEAgLTQ0LDcgKzQ0 LDcgQEAgc3RhdGljIGdib29sZWFuIGlvX3dhdGNoX3BvbGxfcHJlcGFyZShHU291cmNlICpzb3Vy Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgKnRpbWVvdXQp CiB7CiAgICAgSU9XYXRjaFBvbGwgKml3cCA9IGlvX3dhdGNoX3BvbGxfZnJvbV9zb3VyY2Uoc291 cmNlKTsKLSAgICBib29sIG5vd19hY3RpdmUgPSBpd3AtPmZkX2Nhbl9yZWFkKGl3cC0+b3BhcXVl KSA+IDA7CisgICAgYm9vbCBub3dfYWN0aXZlID0gaXdwLT5mZF9jYW5fcmVhZChpd3AtPm9wYXF1 ZSk7CiAgICAgYm9vbCB3YXNfYWN0aXZlID0gaXdwLT5zcmMgIT0gTlVMTDsKICAgICBpZiAod2Fz X2FjdGl2ZSA9PSBub3dfYWN0aXZlKSB7CiAgICAgICAgIHJldHVybiBGQUxTRTsKQEAgLTc2LDcg Kzc2LDcgQEAgc3RhdGljIEdTb3VyY2VGdW5jcyBpb193YXRjaF9wb2xsX2Z1bmNzID0gewogCiBH U291cmNlICppb19hZGRfd2F0Y2hfcG9sbChDaGFyZGV2ICpjaHIsCiAgICAgICAgICAgICAgICAg ICAgICAgICBRSU9DaGFubmVsICppb2MsCi0gICAgICAgICAgICAgICAgICAgICAgICBJT0NhblJl YWRIYW5kbGVyICpmZF9jYW5fcmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIEdTb3VyY2VG dW5jIGZkX2Nhbl9yZWFkLAogICAgICAgICAgICAgICAgICAgICAgICAgUUlPQ2hhbm5lbEZ1bmMg ZmRfcmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSwKICAg ICAgICAgICAgICAgICAgICAgICAgIEdNYWluQ29udGV4dCAqY29udGV4dCkKZGlmZiAtLWdpdCBh L2NoYXJkZXYvY2hhci1wdHkuYyBiL2NoYXJkZXYvY2hhci1wdHkuYwppbmRleCBiMDM0MzMyZWRk Li43Nzc3ZjZkZGVmIDEwMDY0NAotLS0gYS9jaGFyZGV2L2NoYXItcHR5LmMKKysrIGIvY2hhcmRl di9jaGFyLXB0eS5jCkBAIC0xMTksMTMgKzExOSwxMyBAQCBzdGF0aWMgR1NvdXJjZSAqcHR5X2No cl9hZGRfd2F0Y2goQ2hhcmRldiAqY2hyLCBHSU9Db25kaXRpb24gY29uZCkKICAgICByZXR1cm4g cWlvX2NoYW5uZWxfY3JlYXRlX3dhdGNoKHMtPmlvYywgY29uZCk7CiB9CiAKLXN0YXRpYyBpbnQg cHR5X2Nocl9yZWFkX3BvbGwodm9pZCAqb3BhcXVlKQorc3RhdGljIGdib29sZWFuIHB0eV9jaHJf cmVhZF9wb2xsKHZvaWQgKm9wYXF1ZSkKIHsKICAgICBDaGFyZGV2ICpjaHIgPSBDSEFSREVWKG9w YXF1ZSk7CiAgICAgUHR5Q2hhcmRldiAqcyA9IFBUWV9DSEFSREVWKG9wYXF1ZSk7CiAKICAgICBz LT5yZWFkX2J5dGVzID0gcWVtdV9jaHJfYmVfY2FuX3dyaXRlKGNocik7Ci0gICAgcmV0dXJuIHMt PnJlYWRfYnl0ZXM7CisgICAgcmV0dXJuIHMtPnJlYWRfYnl0ZXMgPiAwOwogfQogCiBzdGF0aWMg Z2Jvb2xlYW4gcHR5X2Nocl9yZWFkKFFJT0NoYW5uZWwgKmNoYW4sIEdJT0NvbmRpdGlvbiBjb25k LCB2b2lkICpvcGFxdWUpCmRpZmYgLS1naXQgYS9jaGFyZGV2L2NoYXItc29ja2V0LmMgYi9jaGFy ZGV2L2NoYXItc29ja2V0LmMKaW5kZXggNGZjZGQ4YWVkZC4uMjYyYTU5YjY0ZiAxMDA2NDQKLS0t IGEvY2hhcmRldi9jaGFyLXNvY2tldC5jCisrKyBiL2NoYXJkZXYvY2hhci1zb2NrZXQuYwpAQCAt MTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyB2b2lkIHRjcF9jaHJfYWNjZXB0KFFJT05ldExpc3RlbmVy ICpsaXN0ZW5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFJT0NoYW5uZWxTb2NrZXQg KmNpb2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICpvcGFxdWUpOwogCi1zdGF0 aWMgaW50IHRjcF9jaHJfcmVhZF9wb2xsKHZvaWQgKm9wYXF1ZSk7CitzdGF0aWMgZ2Jvb2xlYW4g dGNwX2Nocl9yZWFkX3BvbGwodm9pZCAqb3BhcXVlKTsKIHN0YXRpYyB2b2lkIHRjcF9jaHJfZGlz Y29ubmVjdChDaGFyZGV2ICpjaHIpOwogCiAvKiBDYWxsZWQgd2l0aCBjaHJfd3JpdGVfbG9jayBo ZWxkLiAgKi8KQEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgaW50IHRjcF9jaHJfd3JpdGUoQ2hh cmRldiAqY2hyLCBjb25zdCB1aW50OF90ICpidWYsIGludCBsZW4pCiAgICAgfQogfQogCi1zdGF0 aWMgaW50IHRjcF9jaHJfcmVhZF9wb2xsKHZvaWQgKm9wYXF1ZSkKK3N0YXRpYyBnYm9vbGVhbiB0 Y3BfY2hyX3JlYWRfcG9sbCh2b2lkICpvcGFxdWUpCiB7CiAgICAgQ2hhcmRldiAqY2hyID0gQ0hB UkRFVihvcGFxdWUpOwogICAgIFNvY2tldENoYXJkZXYgKnMgPSBTT0NLRVRfQ0hBUkRFVihvcGFx dWUpOwpAQCAtMTkyLDcgKzE5Miw3IEBAIHN0YXRpYyBpbnQgdGNwX2Nocl9yZWFkX3BvbGwodm9p ZCAqb3BhcXVlKQogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgcy0+bWF4X3NpemUgPSBx ZW11X2Nocl9iZV9jYW5fd3JpdGUoY2hyKTsKLSAgICByZXR1cm4gcy0+bWF4X3NpemU7CisgICAg cmV0dXJuIHMtPm1heF9zaXplID4gMDsKIH0KIAogc3RhdGljIHZvaWQgdGNwX2Nocl9wcm9jZXNz X0lBQ19ieXRlcyhDaGFyZGV2ICpjaHIsCmRpZmYgLS1naXQgYS9jaGFyZGV2L2NoYXItdWRwLmMg Yi9jaGFyZGV2L2NoYXItdWRwLmMKaW5kZXggMDk3YTJmMGY0Mi4uYjZlMzk5ZTk4MyAxMDA2NDQK LS0tIGEvY2hhcmRldi9jaGFyLXVkcC5jCisrKyBiL2NoYXJkZXYvY2hhci11ZHAuYwpAQCAtNjUs NyArNjUsNyBAQCBzdGF0aWMgdm9pZCB1ZHBfY2hyX2ZsdXNoX2J1ZmZlcihVZHBDaGFyZGV2ICpz KQogICAgIH0KIH0KIAotc3RhdGljIGludCB1ZHBfY2hyX3JlYWRfcG9sbCh2b2lkICpvcGFxdWUp CitzdGF0aWMgZ2Jvb2xlYW4gdWRwX2Nocl9yZWFkX3BvbGwodm9pZCAqb3BhcXVlKQogewogICAg IENoYXJkZXYgKmNociA9IENIQVJERVYob3BhcXVlKTsKICAgICBVZHBDaGFyZGV2ICpzID0gVURQ X0NIQVJERVYob3BhcXVlKTsKQEAgLTc3LDcgKzc3LDcgQEAgc3RhdGljIGludCB1ZHBfY2hyX3Jl YWRfcG9sbCh2b2lkICpvcGFxdWUpCiAgICAgICovCiAgICAgdWRwX2Nocl9mbHVzaF9idWZmZXIo cyk7CiAKLSAgICByZXR1cm4gcy0+bWF4X3NpemU7CisgICAgcmV0dXJuIHMtPm1heF9zaXplID4g MDsKIH0KIAogc3RhdGljIGdib29sZWFuIHVkcF9jaHJfcmVhZChRSU9DaGFubmVsICpjaGFuLCBH SU9Db25kaXRpb24gY29uZCwgdm9pZCAqb3BhcXVlKQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9jaGFy ZGV2L2NoYXItaW8uaCBiL2luY2x1ZGUvY2hhcmRldi9jaGFyLWlvLmgKaW5kZXggOTYzOGRhNTEw MC4uYTE3Mzg3NDUzOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9jaGFyZGV2L2NoYXItaW8uaAorKysg Yi9pbmNsdWRlL2NoYXJkZXYvY2hhci1pby5oCkBAIC0zMSw3ICszMSw3IEBACiAvKiBDYW4gb25s eSBiZSB1c2VkIGZvciByZWFkICovCiBHU291cmNlICppb19hZGRfd2F0Y2hfcG9sbChDaGFyZGV2 ICpjaHIsCiAgICAgICAgICAgICAgICAgICAgICAgICBRSU9DaGFubmVsICppb2MsCi0gICAgICAg ICAgICAgICAgICAgICAgICBJT0NhblJlYWRIYW5kbGVyICpmZF9jYW5fcmVhZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgIEdTb3VyY2VGdW5jIGZkX2Nhbl9yZWFkLAogICAgICAgICAgICAgICAg ICAgICAgICAgUUlPQ2hhbm5lbEZ1bmMgZmRfcmVhZCwKICAgICAgICAgICAgICAgICAgICAgICAg IGdwb2ludGVyIHVzZXJfZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgIEdNYWluQ29udGV4 dCAqY29udGV4dCk7Ci0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:41112) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwGR3-00059h-Iv for qemu-devel@nongnu.org; Tue, 19 Feb 2019 20:12:30 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwGJ0-0001j3-VI for qemu-devel@nongnu.org; Tue, 19 Feb 2019 20:04:12 -0500 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Wed, 20 Feb 2019 02:02:08 +0100 Message-Id: <20190220010232.18731-2-philmd@redhat.com> In-Reply-To: <20190220010232.18731-1-philmd@redhat.com> References: <20190220010232.18731-1-philmd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v3 01/25] chardev: Simplify IOWatchPoll::fd_can_read as a GSourceFunc List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, Prasad J Pandit , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Cc: Jason Wang , Anthony Perard , qemu-ppc@nongnu.org, Stefan Berger , David Gibson , Gerd Hoffmann , Zhang Chen , xen-devel@lists.xenproject.org, Cornelia Huck , Samuel Thibault , Christian Borntraeger , Amit Shah , Li Zhijian , Corey Minyard , "Michael S. Tsirkin" , Paul Durrant , Halil Pasic , Stefano Stabellini , qemu-s390x@nongnu.org, Pavel Dovgalyuk , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= IOWatchPoll::fd_can_read() really is a GSourceFunc type, it simply returns a boolean value. Update the backends to return a boolean, whether there is data to read from the source or not. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- chardev/char-fd.c | 4 ++-- chardev/char-io.c | 6 +++--- chardev/char-pty.c | 4 ++-- chardev/char-socket.c | 6 +++--- chardev/char-udp.c | 4 ++-- include/chardev/char-io.h | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/chardev/char-fd.c b/chardev/char-fd.c index 2c9b2ce567..2421d8e216 100644 --- a/chardev/char-fd.c +++ b/chardev/char-fd.c @@ -69,13 +69,13 @@ static gboolean fd_chr_read(QIOChannel *chan, GIOCond= ition cond, void *opaque) return TRUE; } =20 -static int fd_chr_read_poll(void *opaque) +static gboolean fd_chr_read_poll(void *opaque) { Chardev *chr =3D CHARDEV(opaque); FDChardev *s =3D FD_CHARDEV(opaque); =20 s->max_size =3D qemu_chr_be_can_write(chr); - return s->max_size; + return s->max_size > 0; } =20 static GSource *fd_chr_add_watch(Chardev *chr, GIOCondition cond) diff --git a/chardev/char-io.c b/chardev/char-io.c index 8ced184160..2c1c69098e 100644 --- a/chardev/char-io.c +++ b/chardev/char-io.c @@ -30,7 +30,7 @@ typedef struct IOWatchPoll { QIOChannel *ioc; GSource *src; =20 - IOCanReadHandler *fd_can_read; + GSourceFunc fd_can_read; GSourceFunc fd_read; void *opaque; } IOWatchPoll; @@ -44,7 +44,7 @@ static gboolean io_watch_poll_prepare(GSource *source, gint *timeout) { IOWatchPoll *iwp =3D io_watch_poll_from_source(source); - bool now_active =3D iwp->fd_can_read(iwp->opaque) > 0; + bool now_active =3D iwp->fd_can_read(iwp->opaque); bool was_active =3D iwp->src !=3D NULL; if (was_active =3D=3D now_active) { return FALSE; @@ -76,7 +76,7 @@ static GSourceFuncs io_watch_poll_funcs =3D { =20 GSource *io_add_watch_poll(Chardev *chr, QIOChannel *ioc, - IOCanReadHandler *fd_can_read, + GSourceFunc fd_can_read, QIOChannelFunc fd_read, gpointer user_data, GMainContext *context) diff --git a/chardev/char-pty.c b/chardev/char-pty.c index b034332edd..7777f6ddef 100644 --- a/chardev/char-pty.c +++ b/chardev/char-pty.c @@ -119,13 +119,13 @@ static GSource *pty_chr_add_watch(Chardev *chr, GIO= Condition cond) return qio_channel_create_watch(s->ioc, cond); } =20 -static int pty_chr_read_poll(void *opaque) +static gboolean pty_chr_read_poll(void *opaque) { Chardev *chr =3D CHARDEV(opaque); PtyChardev *s =3D PTY_CHARDEV(opaque); =20 s->read_bytes =3D qemu_chr_be_can_write(chr); - return s->read_bytes; + return s->read_bytes > 0; } =20 static gboolean pty_chr_read(QIOChannel *chan, GIOCondition cond, void *= opaque) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 4fcdd8aedd..262a59b64f 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -147,7 +147,7 @@ static void tcp_chr_accept(QIONetListener *listener, QIOChannelSocket *cioc, void *opaque); =20 -static int tcp_chr_read_poll(void *opaque); +static gboolean tcp_chr_read_poll(void *opaque); static void tcp_chr_disconnect(Chardev *chr); =20 /* Called with chr_write_lock held. */ @@ -184,7 +184,7 @@ static int tcp_chr_write(Chardev *chr, const uint8_t = *buf, int len) } } =20 -static int tcp_chr_read_poll(void *opaque) +static gboolean tcp_chr_read_poll(void *opaque) { Chardev *chr =3D CHARDEV(opaque); SocketChardev *s =3D SOCKET_CHARDEV(opaque); @@ -192,7 +192,7 @@ static int tcp_chr_read_poll(void *opaque) return 0; } s->max_size =3D qemu_chr_be_can_write(chr); - return s->max_size; + return s->max_size > 0; } =20 static void tcp_chr_process_IAC_bytes(Chardev *chr, diff --git a/chardev/char-udp.c b/chardev/char-udp.c index 097a2f0f42..b6e399e983 100644 --- a/chardev/char-udp.c +++ b/chardev/char-udp.c @@ -65,7 +65,7 @@ static void udp_chr_flush_buffer(UdpChardev *s) } } =20 -static int udp_chr_read_poll(void *opaque) +static gboolean udp_chr_read_poll(void *opaque) { Chardev *chr =3D CHARDEV(opaque); UdpChardev *s =3D UDP_CHARDEV(opaque); @@ -77,7 +77,7 @@ static int udp_chr_read_poll(void *opaque) */ udp_chr_flush_buffer(s); =20 - return s->max_size; + return s->max_size > 0; } =20 static gboolean udp_chr_read(QIOChannel *chan, GIOCondition cond, void *= opaque) diff --git a/include/chardev/char-io.h b/include/chardev/char-io.h index 9638da5100..a173874538 100644 --- a/include/chardev/char-io.h +++ b/include/chardev/char-io.h @@ -31,7 +31,7 @@ /* Can only be used for read */ GSource *io_add_watch_poll(Chardev *chr, QIOChannel *ioc, - IOCanReadHandler *fd_can_read, + GSourceFunc fd_can_read, QIOChannelFunc fd_read, gpointer user_data, GMainContext *context); --=20 2.20.1