#  
#         File: winsock.def 
#       System: MS-Windows 3.x 
#      Summary: Module definition file for Windows Sockets DLL.  
#  
name	winsock
type	win16

1   pascal16 accept(word ptr ptr) WINSOCK_accept
2   pascal16 bind(word ptr word) WINSOCK_bind
3   pascal16 closesocket(word) WINSOCK_closesocket
4   pascal16 connect(word ptr word) WINSOCK_connect
5   pascal16 getpeername(word ptr ptr) WINSOCK_getpeername
6   pascal16 getsockname(word ptr ptr) WINSOCK_getsockname
7   pascal16 getsockopt(word word word ptr ptr) WINSOCK_getsockopt
8   pascal   htonl(long) WINSOCK_htonl
9   pascal16 htons(word) WINSOCK_htons
10  pascal   inet_addr(ptr) WINSOCK_inet_addr
11  pascal   inet_ntoa(long) WINSOCK_inet_ntoa
12  pascal16 ioctlsocket(word long ptr) WINSOCK_ioctlsocket
13  pascal16 listen(word word) WINSOCK_listen
14  pascal   ntohl(long) WINSOCK_ntohl
15  pascal16 ntohs(word) WINSOCK_ntohs
16  pascal16 recv(word ptr word word) WINSOCK_recv
17  pascal16 recvfrom(word ptr word word ptr ptr) WINSOCK_recvfrom
18  pascal16 select(word ptr ptr ptr ptr ptr) WINSOCK_select
19  pascal16 send(word ptr word word) WINSOCK_send
20  pascal16 sendto(word ptr word word ptr ptr) WINSOCK_sendto
21  pascal16 setsockopt(word word word ptr word) WINSOCK_setsockopt
22  pascal16 shutdown(word word) WINSOCK_shutdown
23  pascal16 socket(word word word) WINSOCK_socket
51  pascal   gethostbyaddr(ptr word word) WINSOCK_gethostbyaddr
52  pascal   gethostbyname(ptr) WINSOCK_gethostbyname
53  pascal   getprotobyname(ptr) WINSOCK_getprotobyname
54  pascal   getprotobynumber(word) WINSOCK_getprotobynumber
55  pascal   getservbyname(ptr ptr) WINSOCK_getservbyname
56  pascal   getservbyport(word ptr) WINSOCK_getservbyport
57  pascal   gethostname(ptr word) WINSOCK_gethostname
101 pascal16 WSAAsyncSelect(word word word long) WSAAsyncSelect
102 pascal16 WSAAsyncGetHostByAddr(word word ptr word word ptr word)
             WSAAsyncGetHostByAddr
103 pascal16 WSAAsyncGetHostByName(word word ptr ptr word)
             WSAAsyncGetHostByName
104 pascal16 WSAAsyncGetProtoByNumber(word word word ptr word)
             WSAAsyncGetProtoByNumber
105 pascal16 WSAAsyncGetProtoByName(word word ptr ptr word)
             WSAAsyncGetProtoByName
106 pascal16 WSAAsyncGetServByPort(word word word ptr ptr word)
             WSAAsyncGetServByPort
107 pascal16 WSAAsyncGetServByName(word word ptr ptr ptr word)
             WSAAsyncGetServByName
108 pascal16 WSACancelAsyncRequest(word) WSACancelAsyncRequest
109 pascal16 WSASetBlockingHook() WSASetBlockingHook
110 pascal16 WSAUnhookBlockingHook() WSAUnhookBlockingHook
111 pascal16 WSAGetLastError() WSAGetLastError
112 pascal   WSASetLastError(word) WSASetLastError
113 pascal16 WSACancelBlockingCall() WSACancelBlockingCall
114 pascal16 WSAIsBlocking() WSAIsBlocking
115 pascal   WSAStartup(word ptr) WSAStartup
116 pascal   WSACleanup() WSACleanup
151 pascal16 __WSAFDIsSet(word ptr) WSAFDIsSet
