qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 07/14] qemu-char:stdio insert poll call into read on


From: Juan Quintela
Subject: [Qemu-devel] [PATCH 07/14] qemu-char:stdio insert poll call into read one
Date: Wed, 10 Mar 2010 11:03:21 +0100

This way we can remove the poll test

Signed-off-by: Juan Quintela <address@hidden>
---
 qemu-char.c |   22 +++++++---------------
 1 files changed, 7 insertions(+), 15 deletions(-)

diff --git a/qemu-char.c b/qemu-char.c
index 6ea4e8c..93b3ea4 100644
--- a/qemu-char.c
+++ b/qemu-char.c
@@ -664,8 +664,10 @@ static CharDriverState *qemu_chr_open_pipe(QemuOpts *opts)
 static uint8_t term_fifo[TERM_FIFO_MAX_SIZE];
 static int term_fifo_size;

-static int stdio_read_poll(void *opaque)
+static void stdio_read(void *opaque)
 {
+    int size;
+    uint8_t buf[1];
     CharDriverState *chr = opaque;

     /* try to flush the queue if needed */
@@ -673,19 +675,9 @@ static int stdio_read_poll(void *opaque)
         qemu_chr_read(chr, term_fifo, 1);
         term_fifo_size = 0;
     }
-    /* see if we can absorb more chars */
-    if (term_fifo_size == 0)
-        return 1;
-    else
-        return 0;
-}
-
-static void stdio_read(void *opaque)
-{
-    int size;
-    uint8_t buf[1];
-    CharDriverState *chr = opaque;
-
+    if (term_fifo_size != 0) {
+        return;
+    }
     size = read(0, buf, 1);
     if (size == 0) {
         /* stdin has been closed. Remove it from the active list.  */
@@ -757,7 +749,7 @@ static CharDriverState *qemu_chr_open_stdio(QemuOpts *opts)
         return NULL;
     chr = qemu_chr_open_fd(0, 1);
     chr->chr_close = qemu_chr_close_stdio;
-    qemu_set_fd_handler2(0, stdio_read_poll, stdio_read, NULL, chr);
+    qemu_set_fd_handler(0, stdio_read, NULL, chr);
     stdio_nb_clients++;
     term_init(opts);

-- 
1.6.6.1





reply via email to

[Prev in Thread] Current Thread [Next in Thread]