I was doing janitorial Win64 printf format work on ws2_32 and noticed the following warning:
ws2_32/socket16.c:319: warning: passing arg 3 of `WS_ioctlsocket' from incompatible pointer type
which belongs to this piece of code: INT16 WINAPI ioctlsocket16(SOCKET16 s, LONG cmd, ULONG *argp) { return WS_ioctlsocket( s, cmd, argp ); /* <- line 319 */ }
It looks like WS_ioctlsocket's third argument is defined to point to a u_long (http://source.winehq.org/source/dlls/ws2_32/socket.c#L2276) which belongs to BSD (http://source.winehq.org/source/include/winsock.h#L118 for example).
Is it wrong "BSD-only" u_long in this function? Should WS_ioctlsocket be fixed to use a ULONG pointer?