diff --git a/winsup/w32api/ChangeLog b/winsup/w32api/ChangeLog index bdb260e79..b9b5f4f2d 100644 --- a/winsup/w32api/ChangeLog +++ b/winsup/w32api/ChangeLog @@ -1,3 +1,8 @@ +2002-08-26 Casper S. Hornstrup + + * include/wsahelp.h: New file. + * lib/test.c: Include wsahelp.h. + 2002-08-21 Earnie Boyd * include/commctrl.h (NMCUSTOMDRAW): Fix lItemlParam. diff --git a/winsup/w32api/include/wsahelp.h b/winsup/w32api/include/wsahelp.h new file mode 100644 index 000000000..e3b45b86c --- /dev/null +++ b/winsup/w32api/include/wsahelp.h @@ -0,0 +1,92 @@ +#ifndef _WSAHELP_H +#define _WSAHELP_H + +#include +#include +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +#define WSH_NOTIFY_BIND 0x00000001 +#define WSH_NOTIFY_LISTEN 0x00000002 +#define WSH_NOTIFY_CONNECT 0x00000004 +#define WSH_NOTIFY_ACCEPT 0x00000008 +#define WSH_NOTIFY_SHUTDOWN_RECEIVE 0x00000010 +#define WSH_NOTIFY_SHUTDOWN_SEND 0x00000020 +#define WSH_NOTIFY_SHUTDOWN_ALL 0x00000040 +#define WSH_NOTIFY_CLOSE 0x00000080 +#define WSH_NOTIFY_CONNECT_ERROR 0x00000100 +#define SOL_INTERNAL 0xFFFE +#define SO_CONTEXT 1 + +#ifndef RC_INVOKED +typedef enum _SOCKADDR_ADDRESS_INFO { + SockaddrAddressInfoNormal, + SockaddrAddressInfoWildcard, + SockaddrAddressInfoBroadcast, + SockaddrAddressInfoLoopback +} SOCKADDR_ADDRESS_INFO, *PSOCKADDR_ADDRESS_INFO; +typedef enum _SOCKADDR_ENDPOINT_INFO { + SockaddrEndpointInfoNormal, + SockaddrEndpointInfoWildcard, + SockaddrEndpointInfoReserved +} SOCKADDR_ENDPOINT_INFO, *PSOCKADDR_ENDPOINT_INFO; +typedef struct _WINSOCK_MAPPING { + DWORD Rows; + DWORD Columns; + struct { + DWORD AddressFamily; + DWORD SocketType; + DWORD Protocol; + } Mapping[1]; +} WINSOCK_MAPPING, *PWINSOCK_MAPPING; +typedef struct _SOCKADDR_INFO { + SOCKADDR_ADDRESS_INFO AddressInfo; + SOCKADDR_ENDPOINT_INFO EndpointInfo; +} SOCKADDR_INFO, *PSOCKADDR_INFO; + +INT WINAPI WSHAddressToString(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD); +INT WINAPI WSHEnumProtocols(LPINT,LPWSTR,LPVOID,LPDWORD); +INT WINAPI WSHGetBroadcastSockaddr(PVOID,PSOCKADDR,PINT); +INT WINAPI WSHGetProviderGuid(LPWSTR,LPGUID); +INT WINAPI WSHGetSockaddrType(PSOCKADDR,DWORD,PSOCKADDR_INFO); +INT WINAPI WSHGetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT); +INT WINAPI WSHGetWildcardSockaddr(PVOID,PSOCKADDR,PINT); +DWORD WINAPI WSHGetWinsockMapping(PWINSOCK_MAPPING,DWORD); +INT WINAPI WSHGetWSAProtocolInfo(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD); +INT WINAPI WSHIoctl(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD, +LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL); +INT WINAPI WSHJoinLeaf(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET,PSOCKADDR, +DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD); +INT WINAPI WSHNotify(PVOID,SOCKET,HANDLE,HANDLE,DWORD); +INT WINAPI WSHOpenSocket(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD); +INT WINAPI WSHOpenSocket2(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD); +INT WINAPI WSHSetSocketInformation(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT); +INT WINAPI WSHStringToAddress(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD); + +typedef INT (WINAPI *PWSH_ADDRESS_TO_STRING)(LPSOCKADDR,INT,LPWSAPROTOCOL_INFOW,LPWSTR,LPDWORD); +typedef INT (WINAPI *PWSH_ENUM_PROTOCOLS)(LPINT,LPWSTR,LPVOID,LPDWORD); +typedef INT (WINAPI *PWSH_GET_BROADCAST_SOCKADDR)(PVOID,PSOCKADDR,PINT); +typedef INT (WINAPI *PWSH_GET_PROVIDER_GUID)(LPWSTR,LPGUID); +typedef INT (WINAPI *PWSH_GET_SOCKADDR_TYPE)(PSOCKADDR,DWORD,PSOCKADDR_INFO); +typedef INT (WINAPI *PWSH_GET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT); +typedef INT (WINAPI *PWSH_GET_WILDCARD_SOCKEADDR)(PVOID,PSOCKADDR,PINT); +typedef DWORD (WINAPI *PWSH_GET_WINSOCK_MAPPING)(PWINSOCK_MAPPING,DWORD); +typedef INT (WINAPI *PWSH_GET_WSAPROTOCOL_INFO)(LPWSTR,LPWSAPROTOCOL_INFOW*,LPDWORD); +typedef INT (WINAPI *PWSH_IOCTL)(PVOID,SOCKET,HANDLE,HANDLE,DWORD,LPVOID,DWORD, + LPVOID,DWORD,LPDWORD,LPWSAOVERLAPPED,LPWSAOVERLAPPED_COMPLETION_ROUTINE,LPBOOL); +typedef INT (WINAPI *PWSH_JOIN_LEAF)(PVOID,SOCKET,HANDLE,HANDLE,PVOID,SOCKET, + PSOCKADDR,DWORD,LPWSABUF,LPWSABUF,LPQOS,LPQOS,DWORD); +typedef INT (WINAPI *PWSH_NOTIFY)(PVOID,SOCKET,HANDLE,HANDLE,DWORD); +typedef INT (WINAPI *PWSH_OPEN_SOCKET)(PINT,PINT,PINT,PUNICODE_STRING,PVOID,PDWORD); +typedef INT (WINAPI *PWSH_OPEN_SOCKET2)(PINT,PINT,PINT,GROUP,DWORD,PUNICODE_STRING,PVOID*,PDWORD); +typedef INT (WINAPI *PWSH_SET_SOCKET_INFORMATION)(PVOID,SOCKET,HANDLE,HANDLE,INT,INT,PCHAR,INT); +typedef INT (WINAPI *PWSH_STRING_TO_ADDRESS)(LPWSTR,DWORD,LPWSAPROTOCOL_INFOW,LPSOCKADDR,LPDWORD); + +#endif /* RC_INVOKED */ + +#ifdef __cplusplus +}; +#endif /* __cplusplus */ + +#endif /* _WSAHELP_H */ diff --git a/winsup/w32api/lib/test.c b/winsup/w32api/lib/test.c index e312a1f61..7263d446f 100644 --- a/winsup/w32api/lib/test.c +++ b/winsup/w32api/lib/test.c @@ -58,6 +58,7 @@ #ifdef _WINSOCK2_H #include #include +#include #endif #include #include