[1/3] include: Add stuff related to WSAPoll() (try 2)
Bruno Jesus
00cpxxx at gmail.com
Fri May 22 20:42:53 CDT 2015
try 2:
I found the solution to typedef the struct pollfd just like it's done
with fd_set.
-------------- next part --------------
---
include/winsock2.h | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/include/winsock2.h b/include/winsock2.h
index fa3d26b..a96adab 100644
--- a/include/winsock2.h
+++ b/include/winsock2.h
@@ -112,6 +112,31 @@ extern "C" {
#define SD_SEND 0x01
#define SD_BOTH 0x02
+/* Constants for WSAPoll() */
+#ifndef USE_WS_PREFIX
+#define POLLERR 0x0001
+#define POLLHUP 0x0002
+#define POLLNVAL 0x0004
+#define POLLWRNORM 0x0010
+#define POLLWRBAND 0x0020
+#define POLLRDNORM 0x0100
+#define POLLRDBAND 0x0200
+#define POLLPRI 0x0400
+#define POLLIN (POLLRDNORM|POLLRDBAND)
+#define POLLOUT (POLLWRNORM)
+#else
+#define WS_POLLERR 0x0001
+#define WS_POLLHUP 0x0002
+#define WS_POLLNVAL 0x0004
+#define WS_POLLWRNORM 0x0010
+#define WS_POLLWRBAND 0x0020
+#define WS_POLLRDNORM 0x0100
+#define WS_POLLRDBAND 0x0200
+#define WS_POLLPRI 0x0400
+#define WS_POLLIN (WS_POLLRDNORM|WS_POLLRDBAND)
+#define WS_POLLOUT (WS_POLLWRNORM)
+#endif
+
/* Constants for WSAIoctl() */
#ifdef USE_WS_PREFIX
#define WS_IOC_UNIX 0x00000000
@@ -259,6 +284,13 @@ typedef struct _WSAPROTOCOLCHAIN
#define SECURITY_PROTOCOL_NONE 0x0000
+typedef struct WS(pollfd)
+{
+ SOCKET fd;
+ SHORT events;
+ SHORT revents;
+} WSAPOLLFD;
+
#define WSAPROTOCOL_LEN 255
typedef struct _WSAPROTOCOL_INFOA
{
@@ -662,6 +694,7 @@ INT WINAPI WSALookupServiceNextW(HANDLE,DWORD,LPDWORD,LPWSAQUERYSETW);
int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION);
int WINAPI WSANtohl(SOCKET,ULONG,ULONG*);
int WINAPI WSANtohs(SOCKET,WS(u_short),WS(u_short)*);
+int WINAPI WSAPoll(WSAPOLLFD*,ULONG,int);
INT WINAPI WSAProviderConfigChange(LPHANDLE,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
int WINAPI WSARecv(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
int WINAPI WSARecvDisconnect(SOCKET,LPWSABUF);
@@ -736,6 +769,7 @@ typedef int (WINAPI *LPFN_WSANSPIOCTL)(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LP
typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET,ULONG,ULONG*);
typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET,WS(u_short),WS(u_short)*);
typedef INT (WINAPI *LPFN_WSAPROVIDERCONFIGCHANGE)(LPHANDLE,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
+typedef int (WINAPI *LPFN_WSAPOLL)(WSAPOLLFD*,ULONG,int);
typedef int (WINAPI *LPFN_WSARECV)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET,LPWSABUF);
typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET,LPWSABUF,DWORD,LPDWORD,LPDWORD,struct WS(sockaddr)*,LPINT,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE);
--
2.1.4
More information about the wine-patches
mailing list