1 /* 2 * Copyright (C) the Wine project 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2.1 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 17 */ 18 19 #ifndef __WINE_WINE_WINSOCK16_H 20 #define __WINE_WINE_WINSOCK16_H 21 22 #include <stdarg.h> 23 #include <windef.h> 24 #include <winbase.h> 25 #include <pshpack1.h> 26 27 typedef UINT16 SOCKET16; 28 29 typedef struct 30 { 31 UINT16 fd_count; /* how many are SET? */ 32 SOCKET16 fd_array[WS_FD_SETSIZE]; /* an array of SOCKETs */ 33 } ws_fd_set16; 34 35 /* ws_hostent16, ws_protoent16, ws_servent16, ws_netent16 36 * are 1-byte aligned here ! */ 37 typedef struct ws_hostent16 38 { 39 SEGPTR h_name; /* official name of host */ 40 SEGPTR h_aliases; /* alias list */ 41 INT16 h_addrtype; /* host address type */ 42 INT16 h_length; /* length of address */ 43 SEGPTR h_addr_list; /* list of addresses from name server */ 44 } _ws_hostent16; 45 46 typedef struct ws_protoent16 47 { 48 SEGPTR p_name; /* official protocol name */ 49 SEGPTR p_aliases; /* alias list */ 50 INT16 p_proto; /* protocol # */ 51 } _ws_protoent16; 52 53 typedef struct ws_servent16 54 { 55 SEGPTR s_name; /* official service name */ 56 SEGPTR s_aliases; /* alias list */ 57 INT16 s_port; /* port # */ 58 SEGPTR s_proto; /* protocol to use */ 59 } _ws_servent16; 60 61 typedef struct ws_netent16 62 { 63 SEGPTR n_name; /* official name of net */ 64 SEGPTR n_aliases; /* alias list */ 65 INT16 n_addrtype; /* net address type */ 66 INT n_net; /* network # */ 67 } _ws_netent16; 68 69 typedef struct WSAData16 70 { 71 WORD wVersion; 72 WORD wHighVersion; 73 char szDescription[WSADESCRIPTION_LEN+1]; 74 char szSystemStatus[WSASYS_STATUS_LEN+1]; 75 WORD iMaxSockets; 76 WORD iMaxUdpDg; 77 SEGPTR lpVendorInfo; 78 } WSADATA16, *LPWSADATA16; 79 80 #include <poppack.h> 81 82 #define WS_FD_CLR16(fd, set) __WS_FD_CLR((fd),(set), ws_fd_set16) 83 #define WS_FD_SET16(fd, set) __WS_FD_SET1((fd),(set), ws_fd_set16) 84 #define WS_FD_ZERO16(set) (((ws_fd_set16*)(set))->fd_count=0) 85 #define WS_FD_ISSET16(fd, set) __WSAFDIsSet16((SOCKET16)(fd), (ws_fd_set16*)(set)) 86 87 #define INVALID_SOCKET16 ((SOCKET16)(~0)) 88 89 INT16 WINAPI __WSAFDIsSet16( SOCKET16, ws_fd_set16 * ); 90 INT16 WINAPI WSAStartup16(UINT16 wVersionRequired, LPWSADATA16 lpWSAData); 91 void WINAPI WSASetLastError16(INT16 iError); 92 INT16 WINAPI WSAUnhookBlockingHook16(void); 93 FARPROC16 WINAPI WSASetBlockingHook16(FARPROC16 lpBlockFunc); 94 HANDLE16 WINAPI WSAAsyncGetServByName16(HWND16 hWnd, UINT16 wMsg, LPCSTR name, LPCSTR proto, 95 SEGPTR buf, INT16 buflen); 96 HANDLE16 WINAPI WSAAsyncGetServByPort16(HWND16 hWnd, UINT16 wMsg, INT16 port, 97 LPCSTR proto, SEGPTR buf, INT16 buflen); 98 HANDLE16 WINAPI WSAAsyncGetProtoByName16(HWND16 hWnd, UINT16 wMsg, 99 LPCSTR name, SEGPTR buf, INT16 buflen); 100 HANDLE16 WINAPI WSAAsyncGetProtoByNumber16(HWND16 hWnd, UINT16 wMsg, 101 INT16 number, SEGPTR buf, INT16 buflen); 102 HANDLE16 WINAPI WSAAsyncGetHostByName16(HWND16 hWnd, UINT16 wMsg, 103 LPCSTR name, SEGPTR buf, INT16 buflen); 104 HANDLE16 WINAPI WSAAsyncGetHostByAddr16(HWND16 hWnd, UINT16 wMsg, LPCSTR addr, 105 INT16 len, INT16 type, SEGPTR buf, INT16 buflen); 106 INT16 WINAPI WSACancelAsyncRequest16(HANDLE16 hAsyncTaskHandle); 107 INT16 WINAPI WSAAsyncSelect16(SOCKET16 s, HWND16 hWnd, UINT16 wMsg, LONG lEvent); 108 INT16 WINAPI WSARecvEx16(SOCKET16 s, char *buf, INT16 len, INT16 *flags); 109 110 #endif /* __WINE_WINE_WINSOCK16_H */ 111