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", "undef", "undef"]],
42 "WSACreateEvent" => ["long", []],
43 "WSAEnumNetworkEvents" => ["long", ["long", "long", "ptr"]],
44 "WSAEnumProtocolsA" => ["long", ["ptr", "ptr", "ptr"]],
45 "WSAEnumProtocolsW" => ["long", ["ptr", "ptr", "ptr"]],
46 "WSAEventSelect" => ["long", ["long", "long", "long"]],
47 "WSAGetOverlappedResult" => ["long", ["long", "ptr", "ptr", "long", "ptr"]],
48 "gethostbyaddr" => ["ptr", ["ptr", "long", "long"]],
49 "gethostbyname" => ["ptr", ["ptr"]],
50 "getprotobyname" => ["ptr", ["ptr"]],
51 "getprotobynumber" => ["ptr", ["long"]],
52 "getservbyname" => ["ptr", ["ptr", "ptr"]],
53 "getservbyport" => ["ptr", ["long", "ptr"]],
54 "gethostname" => ["long", ["ptr", "long"]],
55 "WSARecv" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr", "ptr"]],
56 "WSARecvFrom" => ["long", ["long", "ptr", "long", "ptr", "ptr", "ptr", "ptr", "ptr", "ptr"]],
57 "WSASend" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
58 "WSASendTo" => ["long", ["long", "ptr", "long", "ptr", "long", "ptr", "long", "ptr", "ptr"]],
59 "WSASocketA" => ["long", ["long", "long", "long", "ptr", "long", "long"]],
60 "WSCDeinstallProvider" => ["long", ["ptr", "ptr"]],
61 "WSCInstallProvider" => ["long", ["ptr", "wstr", "ptr", "long", "ptr"]],
62 "WSAAsyncSelect" => ["long", ["long", "long", "long", "long"]],
63 "WSAAsyncGetHostByAddr" => ["long", ["long", "long", "str", "long", "long", "str", "long"]],
64 "WSAAsyncGetHostByName" => ["long", ["long", "long", "str", "str", "long"]],
65 "WSAAsyncGetProtoByNumber" => ["long", ["long", "long", "long", "str", "long"]],
66 "WSAAsyncGetProtoByName" => ["long", ["long", "long", "str", "str", "long"]],
67 "WSAAsyncGetServByPort" => ["long", ["long", "long", "long", "str", "str", "long"]],
68 "WSAAsyncGetServByName" => ["long", ["long", "long", "str", "str", "str", "long"]],
69 "WSACancelAsyncRequest" => ["long", ["long"]],
70 "WSASetBlockingHook" => ["ptr", ["ptr"]],
71 "WSAGetLastError" => ["long", []],
72 "WSASetLastError" => ["void", ["long"]],
73 "WSACancelBlockingCall" => ["long", []],
74 "WSAIsBlocking" => ["long", []],
75 "WSAStartup" => ["long", ["long", "ptr"]],
76 "WSACleanup" => ["long", []],
77 "__WSAFDIsSet" => ["long", ["long", "ptr"]]
80 &wine::declare("ws2_32",%$module_declarations);
81 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));