From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54549) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDE6t-0004ku-7I for qemu-devel@nongnu.org; Wed, 06 Mar 2013 08:10:20 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UDE6r-0003uh-EK for qemu-devel@nongnu.org; Wed, 06 Mar 2013 08:10:19 -0500 Received: from e23smtp03.au.ibm.com ([202.81.31.145]:42602) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UDE6q-0003uM-Tu for qemu-devel@nongnu.org; Wed, 06 Mar 2013 08:10:17 -0500 Received: from /spool/local by e23smtp03.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 6 Mar 2013 23:03:47 +1000 Received: from d23relay04.au.ibm.com (d23relay04.au.ibm.com [9.190.234.120]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 5E93D2BB0023 for ; Thu, 7 Mar 2013 00:09:42 +1100 (EST) Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay04.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id r26Cv5vr9306524 for ; Wed, 6 Mar 2013 23:57:05 +1100 Received: from d23av04.au.ibm.com (loopback [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id r26D9fBZ014597 for ; Thu, 7 Mar 2013 00:09:42 +1100 Message-ID: <5137400F.8060108@linux.vnet.ibm.com> Date: Wed, 06 Mar 2013 21:09:35 +0800 From: Lei Li MIME-Version: 1.0 References: <1362477081-31843-1-git-send-email-lilei@linux.vnet.ibm.com> <87y5e0oqe0.fsf@blackfin.pond.sub.org> In-Reply-To: <87y5e0oqe0.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] osdep: pass const char pointer to setsockopt List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: stefanha@gmail.com, mdroh@linux.vnet.ibm.com, qemu-devel@nongnu.org On 03/06/2013 04:59 PM, Markus Armbruster wrote: > Lei Li writes: > >> Pass the right type for setsockopt(), and this will also >> fix the compiler warning when cross build for qemu-ga.exe: >> >> util/osdep.c: In function 'socket_set_nodelay': >> util/osdep.c:69:5: warning: passing argument 4 of 'setsockopt' from >> incompatible pointer type [enabled by default] >> In file included from /home/lei/qemu_b/include/sysemu/os-win32.h:30:0, >> from /home/lei/qemu_b/include/qemu-common.h:46, >> from util/osdep.c:48: >> /usr/i686-w64-mingw32/sys-root/mingw/include/winsock2.h:990:63: note: >> expected 'const char *' but argument is of type 'int *' >> >> Signed-off-by: Lei Li >> --- >> util/osdep.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/util/osdep.c b/util/osdep.c >> index c408261..ce472a9 100644 >> --- a/util/osdep.c >> +++ b/util/osdep.c >> @@ -57,7 +57,7 @@ static const char *qemu_version = QEMU_VERSION; >> int socket_set_cork(int fd, int v) >> { >> #if defined(SOL_TCP) && defined(TCP_CORK) >> - return setsockopt(fd, SOL_TCP, TCP_CORK, &v, sizeof(v)); >> + return setsockopt(fd, SOL_TCP, TCP_CORK, (char *)&v, sizeof(v)); >> #else >> return 0; >> #endif >> @@ -66,7 +66,7 @@ int socket_set_cork(int fd, int v) >> int socket_set_nodelay(int fd) >> { >> int v = 1; >> - return setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &v, sizeof(v)); >> + return setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, (char *)&v, sizeof(v)); >> } >> >> int qemu_madvise(void *addr, size_t len, int advice) > Please cast to void * instead, for clarity. > > The parameter is void * in modern setsockopt(). No cast required. > Winsock appears to be stuck in the stone age: it takes char *. Got it, thanks. -- Lei