From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HDCri-0002gZ-9q for qemu-devel@nongnu.org; Fri, 02 Feb 2007 23:51:06 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HDCre-0002gN-GX for qemu-devel@nongnu.org; Fri, 02 Feb 2007 23:51:05 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HDCre-0002gK-Cz for qemu-devel@nongnu.org; Fri, 02 Feb 2007 23:51:02 -0500 Received: from nm01mta.dion.ne.jp ([211.5.2.77] helo=nm01omta017.dion.ne.jp) by monty-python.gnu.org with smtp (Exim 4.52) id 1HDCrd-0006nM-9u for qemu-devel@nongnu.org; Fri, 02 Feb 2007 23:51:02 -0500 Message-ID: <001b01c7474a$b46b4770$0464a8c0@athlon> From: "Kazu" References: Subject: Re: [Qemu-devel] qemu vl.c Date: Sat, 3 Feb 2007 13:20:57 +0900 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0018_01C74796.241C2800" Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. ------=_NextPart_000_0018_01C74796.241C2800 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: 7bit Hi, An attached patch cleans serial for Win32. Regards, Kazu Sent: Friday, February 02, 2007 12:30 PM Thiemo Seufer wrote: > CVSROOT: /sources/qemu > Module name: qemu > Changes by: Thiemo Seufer 07/02/02 03:30:55 > > Modified files: > . : vl.c > > Log message: > Mingw build fix, by Johannes Schindelin. > > CVSWeb URLs: > http://cvs.savannah.gnu.org/viewcvs/qemu/vl.c?cvsroot=qemu&r1=1.245&r2=1.246 > > ------=_NextPart_000_0018_01C74796.241C2800 Content-Type: application/octet-stream; name="qemu-20070202-serial.patch" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="qemu-20070202-serial.patch" Index: vl.c=0A= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=0A= RCS file: /sources/qemu/qemu/vl.c,v=0A= retrieving revision 1.246=0A= diff -u -r1.246 vl.c=0A= --- vl.c 2 Feb 2007 03:30:54 -0000 1.246=0A= +++ vl.c 2 Feb 2007 04:58:36 -0000=0A= @@ -1875,7 +1875,6 @@=0A= =0A= #ifdef _WIN32=0A= typedef struct {=0A= - CharDriverState *chr;=0A= int max_size;=0A= HANDLE hcom, hrecv, hsend;=0A= OVERLAPPED orecv, osend;=0A= @@ -1891,8 +1890,10 @@=0A= static int win_chr_poll(void *opaque);=0A= static int win_chr_pipe_poll(void *opaque);=0A= =0A= -static void win_chr_close2(WinCharState *s)=0A= +static void win_chr_close(CharDriverState *chr)=0A= {=0A= + WinCharState *s =3D chr->opaque;=0A= +=0A= if (s->hsend) {=0A= CloseHandle(s->hsend);=0A= s->hsend =3D NULL;=0A= @@ -1906,19 +1907,14 @@=0A= s->hcom =3D NULL;=0A= }=0A= if (s->fpipe)=0A= - qemu_del_polling_cb(win_chr_pipe_poll, s);=0A= + qemu_del_polling_cb(win_chr_pipe_poll, chr);=0A= else=0A= - qemu_del_polling_cb(win_chr_poll, s);=0A= + qemu_del_polling_cb(win_chr_poll, chr);=0A= }=0A= =0A= -static void win_chr_close(CharDriverState *chr)=0A= +static int win_chr_init(CharDriverState *chr, const char *filename)=0A= {=0A= WinCharState *s =3D chr->opaque;=0A= - win_chr_close2(s);=0A= -}=0A= -=0A= -static int win_chr_init(WinCharState *s, CharDriverState *chr, const = char *filename)=0A= -{=0A= COMMCONFIG comcfg;=0A= COMMTIMEOUTS cto =3D { 0, 0, 0, 0, 0};=0A= COMSTAT comstat;=0A= @@ -1975,12 +1971,11 @@=0A= fprintf(stderr, "Failed ClearCommError\n");=0A= goto fail;=0A= }=0A= - s->chr =3D chr;=0A= - qemu_add_polling_cb(win_chr_poll, s);=0A= + qemu_add_polling_cb(win_chr_poll, chr);=0A= return 0;=0A= =0A= fail:=0A= - win_chr_close2(s);=0A= + win_chr_close(chr);=0A= return -1;=0A= }=0A= =0A= @@ -2018,14 +2013,17 @@=0A= return len1 - len;=0A= }=0A= =0A= -static int win_chr_read_poll(WinCharState *s)=0A= +static int win_chr_read_poll(CharDriverState *chr)=0A= {=0A= - s->max_size =3D qemu_chr_can_read(s->chr);=0A= + WinCharState *s =3D chr->opaque;=0A= +=0A= + s->max_size =3D qemu_chr_can_read(chr);=0A= return s->max_size;=0A= }=0A= =0A= -static void win_chr_readfile(WinCharState *s)=0A= +static void win_chr_readfile(CharDriverState *chr)=0A= {=0A= + WinCharState *s =3D chr->opaque;=0A= int ret, err;=0A= uint8_t buf[1024];=0A= DWORD size;=0A= @@ -2041,31 +2039,34 @@=0A= }=0A= =0A= if (size > 0) {=0A= - qemu_chr_read(s->chr, buf, size);=0A= + qemu_chr_read(chr, buf, size);=0A= }=0A= }=0A= =0A= -static void win_chr_read(WinCharState *s)=0A= +static void win_chr_read(CharDriverState *chr)=0A= {=0A= + WinCharState *s =3D chr->opaque;=0A= +=0A= if (s->len > s->max_size)=0A= s->len =3D s->max_size;=0A= if (s->len =3D=3D 0)=0A= return;=0A= =0A= - win_chr_readfile(s);=0A= + win_chr_readfile(chr);=0A= }=0A= =0A= static int win_chr_poll(void *opaque)=0A= {=0A= - WinCharState *s =3D opaque;=0A= + CharDriverState *chr =3D opaque;=0A= + WinCharState *s =3D chr->opaque;=0A= COMSTAT status;=0A= DWORD comerr;=0A= =0A= ClearCommError(s->hcom, &comerr, &status);=0A= if (status.cbInQue > 0) {=0A= s->len =3D status.cbInQue;=0A= - win_chr_read_poll(s);=0A= - win_chr_read(s);=0A= + win_chr_read_poll(chr);=0A= + win_chr_read(chr);=0A= return 1;=0A= }=0A= return 0;=0A= @@ -2088,7 +2089,7 @@=0A= chr->chr_write =3D win_chr_write;=0A= chr->chr_close =3D win_chr_close;=0A= =0A= - if (win_chr_init(s, chr, filename) < 0) {=0A= + if (win_chr_init(chr, filename) < 0) {=0A= free(s);=0A= free(chr);=0A= return NULL;=0A= @@ -2099,21 +2100,23 @@=0A= =0A= static int win_chr_pipe_poll(void *opaque)=0A= {=0A= - WinCharState *s =3D opaque;=0A= + CharDriverState *chr =3D opaque;=0A= + WinCharState *s =3D chr->opaque;=0A= DWORD size;=0A= =0A= PeekNamedPipe(s->hcom, NULL, 0, NULL, &size, NULL);=0A= if (size > 0) {=0A= s->len =3D size;=0A= - win_chr_read_poll(s);=0A= - win_chr_read(s);=0A= + win_chr_read_poll(chr);=0A= + win_chr_read(chr);=0A= return 1;=0A= }=0A= return 0;=0A= }=0A= =0A= -static int win_chr_pipe_init(WinCharState *s, const char *filename)=0A= +static int win_chr_pipe_init(CharDriverState *chr, const char *filename)=0A= {=0A= + WinCharState *s =3D chr->opaque;=0A= OVERLAPPED ov;=0A= int ret;=0A= DWORD size;=0A= @@ -2165,11 +2168,11 @@=0A= CloseHandle(ov.hEvent);=0A= ov.hEvent =3D NULL;=0A= }=0A= - qemu_add_polling_cb(win_chr_pipe_poll, s);=0A= + qemu_add_polling_cb(win_chr_pipe_poll, chr);=0A= return 0;=0A= =0A= fail:=0A= - win_chr_close2(s);=0A= + win_chr_close(chr);=0A= return -1;=0A= }=0A= =0A= @@ -2191,7 +2194,7 @@=0A= chr->chr_write =3D win_chr_write;=0A= chr->chr_close =3D win_chr_close;=0A= =0A= - if (win_chr_pipe_init(s, filename) < 0) {=0A= + if (win_chr_pipe_init(chr, filename) < 0) {=0A= free(s);=0A= free(chr);=0A= return NULL;=0A= ------=_NextPart_000_0018_01C74796.241C2800--