8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "accept" => ["long", ["long", "ptr", "ptr"]],
16 "bind" => ["long", ["long", "ptr", "long"]],
17 "closesocket" => ["long", ["long"]],
18 "connect" => ["long", ["long", "ptr", "long"]],
19 "getpeername" => ["long", ["long", "ptr", "ptr"]],
20 "getsockname" => ["long", ["long", "ptr", "ptr"]],
21 "getsockopt" => ["long", ["long", "long", "long", "ptr", "ptr"]],
22 "htonl" => ["long", ["long"]],
23 "htons" => ["long", ["long"]],
24 "ioctlsocket" => ["long", ["long", "long", "ptr"]],
25 "inet_addr" => ["long", ["ptr"]],
26 "inet_ntoa" => ["ptr", ["unknown"]],
27 "listen" => ["long", ["long", "long"]],
28 "ntohl" => ["long", ["long"]],
29 "ntohs" => ["long", ["long"]],
30 "recv" => ["long", ["long", "ptr", "long", "long"]],
31 "recvfrom" => ["long", ["long", "ptr", "long", "long", "ptr", "ptr"]],
32 "select" => ["long", ["long", "ptr", "ptr", "ptr", "ptr"]],
33 "send" => ["long", ["long", "ptr", "long", "long"]],
34 "sendto" => ["long", ["long", "ptr", "long", "long", "ptr", "long"]],
35 "setsockopt" => ["long", ["long", "long", "long", "ptr", "long"]],
36 "shutdown" => ["long", ["long", "long"]],
37 "socket" => ["long", ["long", "long", "long"]],
38 "WSApSetPostRoutine" => ["long", ["ptr"]],
39 "WSAAccept" => ["long", ["long", "ptr", "ptr", "ptr", "long"]],
40 "WSACloseEvent" => ["long", ["long"]],
41 "WSAConnect" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
42 "WSACreateEvent" => ["long", []],
43 "WSADuplicateSocketA" => ["long", ["long", "long", "ptr"]],
44 "WSAEnumNetworkEvents" => ["long", ["long", "long", "ptr"]],
45 "WSAEnumProtocolsA" => ["long", ["ptr", "ptr", "ptr"]],
46 "WSAEnumProtocolsW" => ["long", ["ptr", "ptr", "ptr"]],
47 "WSAEventSelect" => ["long", ["long", "long", "long"]],
48 "WSAGetOverlappedResult" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
49 "gethostbyaddr" => ["ptr", ["ptr", "long", "long"]],
50 "gethostbyname" => ["ptr", ["ptr"]],
51 "getprotobyname" => ["ptr", ["ptr"]],
52 "getprotobynumber" => ["ptr", ["long"]],
53 "getservbyname" => ["ptr", ["ptr", "ptr"]],
54 "getservbyport" => ["ptr", ["long", "ptr"]],
55 "gethostname" => ["long", ["ptr", "long"]],
56 "WSARecv" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
57 "WSARecvFrom" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
58 "WSASend" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
59 "WSASendTo" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
60 "WSASocketA" => ["long", ["long", "long", "long", "ptr", "long", "long"]],
61 "WSCDeinstallProvider" => ["long", ["ptr", "ptr"]],
62 "WSCInstallProvider" => ["long", ["ptr", "wstr", "ptr", "long", "ptr"]],
63 "WSAAsyncSelect" => ["long", ["long", "long", "long", "long"]],
64 "WSAAsyncGetHostByAddr" => ["long", ["long", "long", "str", "long", "long", "str", "long"]],
65 "WSAAsyncGetHostByName" => ["long", ["long", "long", "str", "str", "long"]],
66 "WSAAsyncGetProtoByNumber" => ["long", ["long", "long", "long", "str", "long"]],
67 "WSAAsyncGetProtoByName" => ["long", ["long", "long", "str", "str", "long"]],
68 "WSAAsyncGetServByPort" => ["long", ["long", "long", "long", "str", "str", "long"]],
69 "WSAAsyncGetServByName" => ["long", ["long", "long", "str", "str", "str", "long"]],
70 "WSACancelAsyncRequest" => ["long", ["long"]],
71 "WSASetBlockingHook" => ["ptr", ["ptr"]],
72 "WSAGetLastError" => ["long", []],
73 "WSASetLastError" => ["void", ["long"]],
74 "WSACancelBlockingCall" => ["long", []],
75 "WSAIsBlocking" => ["long", []],
76 "WSAStartup" => ["long", ["long", "ptr"]],
77 "WSACleanup" => ["long", []],
78 "__WSAFDIsSet" => ["long", ["long", "ptr"]]
81 &wine::declare("ws2_32",%$module_declarations);
82 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));