qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] current qemu cvs broken for mingw hosts


From: Johannes Schindelin
Subject: Re: [Qemu-devel] current qemu cvs broken for mingw hosts
Date: Wed, 31 Jan 2007 17:24:46 +0100 (CET)

Hi,

On Wed, 31 Jan 2007, Christian MICHON wrote:

> On 1/30/07, Paul Brook <address@hidden> wrote:
> > Did you test it? I'm fairly certain it still won't work. AFAICS You're not
> > setting the field anywhere.
> 
> the binary works. The struct statement was missing the "chr". Now, in 
> term of functionality, I do not know how you test it, if this was your 
> question.

You'd have to attach a serial device with "-serial COM". Unfortunately, I 
don't even have "COM" anymore, let alone on a machine which runs Windows, 
so I cannot test either.

But this patch looks sane to me (since WinCharState is initialized by 
win_chr_init(), IMHO it makes sense to pass the CharDriverState to that 
function):

 vl.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/vl.c b/vl.c
index 8ddd8ec..7af7d02 100644
--- a/vl.c
+++ b/vl.c
@@ -1875,6 +1875,7 @@ static CharDriverState *qemu_chr_open_pty(void)
 
 #ifdef _WIN32
 typedef struct {
+    CharDriverState *chr;
     int max_size;
     HANDLE hcom, hrecv, hsend;
     OVERLAPPED orecv, osend;
@@ -1916,7 +1917,7 @@ static void win_chr_close(CharDriverState *chr)
     win_chr_close2(s);
 }
 
-static int win_chr_init(WinCharState *s, const char *filename)
+static int win_chr_init(WinCharState *s, CharDriverState *chr, const char 
*filename)
 {
     COMMCONFIG comcfg;
     COMMTIMEOUTS cto = { 0, 0, 0, 0, 0};
@@ -1974,6 +1975,7 @@ static int win_chr_init(WinCharState *s, const char 
*filename)
         fprintf(stderr, "Failed ClearCommError\n");
         goto fail;
     }
+    s->chr = chr;
     qemu_add_polling_cb(win_chr_poll, s);
     return 0;
 
@@ -2086,7 +2088,7 @@ static CharDriverState *qemu_chr_open_win(const char 
*filename)
     chr->chr_write = win_chr_write;
     chr->chr_close = win_chr_close;
 
-    if (win_chr_init(s, filename) < 0) {
+    if (win_chr_init(s, chr, filename) < 0) {
         free(s);
         free(chr);
         return NULL;




reply via email to

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