[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Char flow control patches
From: |
Amit Shah |
Subject: |
[Qemu-devel] Char flow control patches |
Date: |
Wed, 30 Jan 2013 17:14:09 +0530 |
Hi Anthony,
I did some basic testing of the char flow control patches from your
char-flow.2 branch. With the following patch applied, things seem to
be working fine. I tested the isa-serial and virtio-serial devices.
I haven't yet tested with virtio-serial flow control, but at least no
regressions as of now.
diff --git a/qemu-char.c b/qemu-char.c
index 2b714cf..5731d02 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -569,7 +569,7 @@ static gboolean io_watch_poll_prepare(GSource *source, gint
*timeout_)
iwp->max_size = iwp->fd_can_read(iwp->opaque);
if (iwp->max_size == 0) {
- return TRUE;
+ return FALSE;
}
return g_io_watch_funcs.prepare(source, timeout_);
In addition to this, we should also have the following, but the above
masks these:
@@ -1067,7 +1067,7 @@ static gboolean pty_chr_read(GIOChannel *chan,
GIOCondition cond, void *opaque)
if (len > s->read_bytes)
len = s->read_bytes;
if (len == 0)
- return TRUE;
+ return FALSE;
status = g_io_channel_read_chars(s->fd, (gchar *)buf, len, &size, NULL);
if (status != G_IO_STATUS_NORMAL) {
pty_chr_state(chr, 0);
@@ -2237,7 +2237,7 @@ static gboolean udp_chr_read(GIOChannel *chan,
GIOCondition cond, void *opaque)
GIOStatus status;
if (s->max_size == 0)
- return TRUE;
+ return FALSE;
status = g_io_channel_read_chars(s->chan, (gchar *)s->buf, sizeof(s->buf),
&bytes_read, NULL);
s->bufcnt = bytes_read;
@@ -2492,7 +2492,7 @@ static gboolean tcp_chr_read(GIOChannel *chan,
GIOCondition cond, void *opaque)
int len, size;
if (!s->connected || s->max_size <= 0) {
- return TRUE;
+ return FALSE;
}
len = sizeof(buf);
if (len > s->max_size)
Amit
- [Qemu-devel] Char flow control patches,
Amit Shah <=