[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