2 * Copyright (C) 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>
3 * Helsinki University of Technology, Finland.
5 * Copyright (C) 2005 - 2007 The AROS Dev Team
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
11 * This program is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
25 #include <aros/libcall.h>
26 #include <exec/types.h>
27 #include <sys/param.h>
28 #include <api/amiga_raf.h>
30 typedef VOID (* f_void
)();
33 * Null used in both function tables
35 extern VOID
AROS_SLIB_ENTRY(Null
, LIB
, 0)(VOID
);
38 * "declarations" for ExecLibraryList_funcTable functions.
41 extern VOID
AROS_SLIB_ENTRY(Open
, ELL
, 1)();
42 extern VOID
AROS_SLIB_ENTRY(Expunge
, ELL
, 3)();
44 f_void ExecLibraryList_funcTable
[] = {
46 (f_void
)FUNCARRAY_32BIT_NATIVE
,
48 AROS_SLIB_ENTRY(Open
, ELL
, 1),
49 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* ELL_Close() is never called */
50 AROS_SLIB_ENTRY(Expunge
, ELL
, 3),
51 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* ELL_Reserved() */
56 * "declarations" for userLibrary_funcTable functions.
58 void AROS_SLIB_ENTRY(Close
, UL
, 2)(void);
59 void AROS_SLIB_ENTRY(socket
, UL
, 5)(void);
60 void AROS_SLIB_ENTRY(bind
, UL
, 6)(void);
61 void AROS_SLIB_ENTRY(listen
, UL
, 7)(void);
62 void AROS_SLIB_ENTRY(accept
, UL
, 8)(void);
63 void AROS_SLIB_ENTRY(connect
, UL
, 9)(void);
64 void AROS_SLIB_ENTRY(sendto
, UL
, 10)(void);
65 void AROS_SLIB_ENTRY(send
, UL
, 11)(void);
66 void AROS_SLIB_ENTRY(recvfrom
, UL
, 12)(void);
67 void AROS_SLIB_ENTRY(recv
, UL
, 13)(void);
68 void AROS_SLIB_ENTRY(shutdown
, UL
, 14)(void);
69 void AROS_SLIB_ENTRY(setsockopt
, UL
, 15)(void);
70 void AROS_SLIB_ENTRY(getsockopt
, UL
, 16)(void);
71 void AROS_SLIB_ENTRY(getsockname
, UL
, 17)(void);
72 void AROS_SLIB_ENTRY(getpeername
, UL
, 18)(void);
74 void AROS_SLIB_ENTRY(IoctlSocket
, UL
, 19)(void);
75 void AROS_SLIB_ENTRY(CloseSocket
, UL
, 20)(void);
76 void AROS_SLIB_ENTRY(WaitSelect
, UL
, 21)(void);
77 void AROS_SLIB_ENTRY(SetSocketSignals
, UL
, 22)(void);
78 void AROS_SLIB_ENTRY(getdtablesize
, UL
, 23)(void);
80 void AROS_SLIB_ENTRY(ObtainSocket
, UL
, 24)(void);
81 void AROS_SLIB_ENTRY(ReleaseSocket
, UL
, 25)(void);
82 void AROS_SLIB_ENTRY(ReleaseCopyOfSocket
, UL
, 26)(void);
83 void AROS_SLIB_ENTRY(Errno
, UL
, 27)(void);
84 void AROS_SLIB_ENTRY(SetErrnoPtr
, UL
, 28)(void);
86 void AROS_SLIB_ENTRY(Inet_NtoA
, UL
, 29)(void);
87 void AROS_SLIB_ENTRY(inet_addr
, UL
, 30)(void);
88 void AROS_SLIB_ENTRY(Inet_LnaOf
, UL
, 31)(void);
89 void AROS_SLIB_ENTRY(Inet_NetOf
, UL
, 32)(void);
90 void AROS_SLIB_ENTRY(Inet_MakeAddr
, UL
, 33)(void);
91 void AROS_SLIB_ENTRY(inet_network
, UL
, 34)(void);
93 void AROS_SLIB_ENTRY(gethostbyname
, UL
, 35)(void);
94 void AROS_SLIB_ENTRY(gethostbyaddr
, UL
, 36)(void);
95 void AROS_SLIB_ENTRY(getnetbyname
, UL
, 37)(void);
96 void AROS_SLIB_ENTRY(getnetbyaddr
, UL
, 38)(void);
97 void AROS_SLIB_ENTRY(getservbyname
, UL
, 39)(void);
98 void AROS_SLIB_ENTRY(getservbyport
, UL
, 40)(void);
99 void AROS_SLIB_ENTRY(getprotobyname
, UL
, 41)(void);
100 void AROS_SLIB_ENTRY(getprotobynumber
, UL
, 42)(void);
101 void AROS_SLIB_ENTRY(Syslog
, UL
, 43)(void);
103 /* bsdsocket.library 2 extensions */
104 void AROS_SLIB_ENTRY(Dup2Socket
, UL
, 44)(void);
106 /* bsdsocket.library 3 extensions */
107 void AROS_SLIB_ENTRY(sendmsg
, UL
, 45)(void);
108 void AROS_SLIB_ENTRY(recvmsg
, UL
, 46)(void);
109 void AROS_SLIB_ENTRY(gethostname
, UL
, 47)(void);
110 void AROS_SLIB_ENTRY(gethostid
, UL
, 48)(void);
111 void AROS_SLIB_ENTRY(SocketBaseTagList
, UL
, 49)(void);
113 /* bsdsocket.library 4 extensions */
114 void AROS_SLIB_ENTRY(GetSocketEvents
, UL
, 50)(void);
116 #if defined(__CONFIG_ROADSHOW__)
117 /* Roadshow extensions */
118 void AROS_SLIB_ENTRY(bpf_open
, UL
, 61)(void);
119 void AROS_SLIB_ENTRY(bpf_close
, UL
, 62)(void);
120 void AROS_SLIB_ENTRY(bpf_read
, UL
, 63)(void);
121 void AROS_SLIB_ENTRY(bpf_write
, UL
, 64)(void);
122 void AROS_SLIB_ENTRY(bpf_set_notify_mask
, UL
, 65)(void);
123 void AROS_SLIB_ENTRY(bpf_set_interrupt_mask
, UL
, 66)(void);
124 void AROS_SLIB_ENTRY(bpf_ioctl
, UL
, 67)(void);
125 void AROS_SLIB_ENTRY(bpf_data_waiting
, UL
, 68)(void);
126 void AROS_SLIB_ENTRY(AddRouteTagList
, UL
, 69)(void);
127 void AROS_SLIB_ENTRY(DeleteRouteTagList
, UL
, 70)(void);
128 void AROS_SLIB_ENTRY(ChangeRouteTagList
, UL
, 71)(void);
129 void AROS_SLIB_ENTRY(FreeRouteInfo
, UL
, 72)(void);
130 void AROS_SLIB_ENTRY(GetRouteInfo
, UL
, 73)(void);
131 void AROS_SLIB_ENTRY(AddInterfaceTagList
, UL
, 74)(void);
132 void AROS_SLIB_ENTRY(ConfigureInterfaceTagList
, UL
, 75)(void);
133 void AROS_SLIB_ENTRY(ReleaseInterfaceList
, UL
, 76)(void);
134 void AROS_SLIB_ENTRY(ObtainInterfaceList
, UL
, 77)(void);
135 void AROS_SLIB_ENTRY(QueryInterfaceTagList
, UL
, 78)(void);
136 void AROS_SLIB_ENTRY(CreateAddrAllocMessageA
, UL
, 79)(void);
137 void AROS_SLIB_ENTRY(DeleteAddrAllocMessage
, UL
, 80)(void);
138 void AROS_SLIB_ENTRY(BeginInterfaceConfig
, UL
, 81)(void);
139 void AROS_SLIB_ENTRY(AbortInterfaceConfig
, UL
, 82)(void);
140 void AROS_SLIB_ENTRY(AddNetMonitorHookTagList
, UL
, 83)(void);
141 void AROS_SLIB_ENTRY(RemoveNetMonitorHook
, UL
, 84)(void);
142 void AROS_SLIB_ENTRY(GetNetworkStatistics
, UL
, 85)(void);
143 void AROS_SLIB_ENTRY(AddDomainNameServer
, UL
, 86)(void);
144 void AROS_SLIB_ENTRY(RemoveDomainNameServer
, UL
, 87)(void);
145 void AROS_SLIB_ENTRY(ReleaseDomainNameServerList
, UL
, 88)(void);
146 void AROS_SLIB_ENTRY(ObtainDomainNameServerList
, UL
, 89)(void);
147 void AROS_SLIB_ENTRY(setnetent
, UL
, 90)(void);
148 void AROS_SLIB_ENTRY(endnetent
, UL
, 91)(void);
149 void AROS_SLIB_ENTRY(getnetent
, UL
, 92)(void);
150 void AROS_SLIB_ENTRY(setprotoent
, UL
, 93)(void);
151 void AROS_SLIB_ENTRY(endprotoent
, UL
, 94)(void);
152 void AROS_SLIB_ENTRY(getprotoent
, UL
, 95)(void);
153 void AROS_SLIB_ENTRY(setservent
, UL
, 96)(void);
154 void AROS_SLIB_ENTRY(endservent
, UL
, 97)(void);
155 void AROS_SLIB_ENTRY(getservent
, UL
, 98)(void);
156 void AROS_SLIB_ENTRY(inet_aton
, UL
, 99)(void);
159 /* TODO: following functions are not implemented yet */
161 f_void UserLibrary_funcTable
[] = {
163 (f_void
)FUNCARRAY_32BIT_NATIVE
,
165 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Open() */
166 AROS_SLIB_ENTRY(Close
, UL
, 2),
167 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Expunge() */
168 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved() */
169 AROS_SLIB_ENTRY(socket
, UL
, 5),
170 AROS_SLIB_ENTRY(bind
, UL
, 6),
171 AROS_SLIB_ENTRY(listen
, UL
, 7),
172 AROS_SLIB_ENTRY(accept
, UL
, 8),
173 AROS_SLIB_ENTRY(connect
, UL
, 9),
174 AROS_SLIB_ENTRY(sendto
, UL
, 10),
175 AROS_SLIB_ENTRY(send
, UL
, 11),
176 AROS_SLIB_ENTRY(recvfrom
, UL
, 12),
177 AROS_SLIB_ENTRY(recv
, UL
, 13),
178 AROS_SLIB_ENTRY(shutdown
, UL
, 14),
179 AROS_SLIB_ENTRY(setsockopt
, UL
, 15),
180 AROS_SLIB_ENTRY(getsockopt
, UL
, 16),
181 AROS_SLIB_ENTRY(getsockname
, UL
, 17),
182 AROS_SLIB_ENTRY(getpeername
, UL
, 18),
184 AROS_SLIB_ENTRY(IoctlSocket
, UL
, 19),
185 AROS_SLIB_ENTRY(CloseSocket
, UL
, 20),
186 AROS_SLIB_ENTRY(WaitSelect
, UL
, 21),
187 AROS_SLIB_ENTRY(SetSocketSignals
, UL
, 22),
188 AROS_SLIB_ENTRY(getdtablesize
, UL
, 23), /* from V3 on */
190 AROS_SLIB_ENTRY(ObtainSocket
, UL
, 24),
191 AROS_SLIB_ENTRY(ReleaseSocket
, UL
, 25),
192 AROS_SLIB_ENTRY(ReleaseCopyOfSocket
, UL
, 26),
193 AROS_SLIB_ENTRY(Errno
, UL
, 27),
194 AROS_SLIB_ENTRY(SetErrnoPtr
, UL
, 28),
196 AROS_SLIB_ENTRY(Inet_NtoA
, UL
, 29),
197 AROS_SLIB_ENTRY(inet_addr
, UL
, 30),
198 AROS_SLIB_ENTRY(Inet_LnaOf
, UL
, 31),
199 AROS_SLIB_ENTRY(Inet_NetOf
, UL
, 32),
200 AROS_SLIB_ENTRY(Inet_MakeAddr
, UL
, 33),
201 AROS_SLIB_ENTRY(inet_network
, UL
, 34),
203 AROS_SLIB_ENTRY(gethostbyname
, UL
, 35),
204 AROS_SLIB_ENTRY(gethostbyaddr
, UL
, 36),
205 AROS_SLIB_ENTRY(getnetbyname
, UL
, 37),
206 AROS_SLIB_ENTRY(getnetbyaddr
, UL
, 38),
207 AROS_SLIB_ENTRY(getservbyname
, UL
, 39),
208 AROS_SLIB_ENTRY(getservbyport
, UL
, 40),
209 AROS_SLIB_ENTRY(getprotobyname
, UL
, 41),
210 AROS_SLIB_ENTRY(getprotobynumber
, UL
, 42),
211 AROS_SLIB_ENTRY(Syslog
, UL
, 43),
213 /* bsdsocket.library 2 extensions */
214 AROS_SLIB_ENTRY(Dup2Socket
, UL
, 44),
216 /* bsdsocket.library 3 extensions */
217 AROS_SLIB_ENTRY(sendmsg
, UL
, 45),
218 AROS_SLIB_ENTRY(recvmsg
, UL
, 46),
219 AROS_SLIB_ENTRY(gethostname
, UL
, 47),
220 AROS_SLIB_ENTRY(gethostid
, UL
, 48),
221 AROS_SLIB_ENTRY(SocketBaseTagList
, UL
, 49),
223 /* bsdsocket.library 4 extensions */
224 AROS_SLIB_ENTRY(GetSocketEvents
, UL
, 50),
226 #if defined(__CONFIG_ROADSHOW__)
227 /* Roadshow extensions */
228 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved1() */
229 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved2() */
230 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved3() */
231 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved4() */
232 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved5() */
233 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved6() */
234 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved7() */
235 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved8() */
236 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved9() */
237 AROS_SLIB_ENTRY(Null
, LIB
, 0), /* Reserved10() */
238 AROS_SLIB_ENTRY(bpf_open
, UL
, 61),
239 AROS_SLIB_ENTRY(bpf_close
, UL
, 62),
240 AROS_SLIB_ENTRY(bpf_read
, UL
, 63),
241 AROS_SLIB_ENTRY(bpf_write
, UL
, 64),
242 AROS_SLIB_ENTRY(bpf_set_notify_mask
, UL
, 65),
243 AROS_SLIB_ENTRY(bpf_set_interrupt_mask
, UL
, 66),
244 AROS_SLIB_ENTRY(bpf_ioctl
, UL
, 67),
245 AROS_SLIB_ENTRY(bpf_data_waiting
, UL
, 68),
246 AROS_SLIB_ENTRY(AddRouteTagList
, UL
, 69),
247 AROS_SLIB_ENTRY(DeleteRouteTagList
, UL
, 70),
248 AROS_SLIB_ENTRY(ChangeRouteTagList
, UL
, 71),
249 AROS_SLIB_ENTRY(FreeRouteInfo
, UL
, 72),
250 AROS_SLIB_ENTRY(GetRouteInfo
, UL
, 73),
251 AROS_SLIB_ENTRY(AddInterfaceTagList
, UL
, 74),
252 AROS_SLIB_ENTRY(ConfigureInterfaceTagList
, UL
, 75),
253 AROS_SLIB_ENTRY(ReleaseInterfaceList
, UL
, 76),
254 AROS_SLIB_ENTRY(ObtainInterfaceList
, UL
, 77),
255 AROS_SLIB_ENTRY(QueryInterfaceTagList
, UL
, 78),
256 AROS_SLIB_ENTRY(CreateAddrAllocMessageA
, UL
, 79),
257 AROS_SLIB_ENTRY(DeleteAddrAllocMessage
, UL
, 80),
258 AROS_SLIB_ENTRY(BeginInterfaceConfig
, UL
, 81),
259 AROS_SLIB_ENTRY(AbortInterfaceConfig
, UL
, 82),
260 AROS_SLIB_ENTRY(AddNetMonitorHookTagList
, UL
, 83),
261 AROS_SLIB_ENTRY(RemoveNetMonitorHook
, UL
, 84),
262 AROS_SLIB_ENTRY(GetNetworkStatistics
, UL
, 85),
263 AROS_SLIB_ENTRY(AddDomainNameServer
, UL
, 86),
264 AROS_SLIB_ENTRY(RemoveDomainNameServer
, UL
, 87),
265 AROS_SLIB_ENTRY(ReleaseDomainNameServerList
, UL
, 88),
266 AROS_SLIB_ENTRY(ObtainDomainNameServerList
, UL
, 89),
267 AROS_SLIB_ENTRY(setnetent
, UL
, 90),
268 AROS_SLIB_ENTRY(endnetent
, UL
, 91),
269 AROS_SLIB_ENTRY(getnetent
, UL
, 92),
270 AROS_SLIB_ENTRY(setprotoent
, UL
, 93),
271 AROS_SLIB_ENTRY(endprotoent
, UL
, 94),
272 AROS_SLIB_ENTRY(getprotoent
, UL
, 95),
273 AROS_SLIB_ENTRY(setservent
, UL
, 96),
274 AROS_SLIB_ENTRY(endservent
, UL
, 97),
275 AROS_SLIB_ENTRY(getservent
, UL
, 98),
276 AROS_SLIB_ENTRY(inet_aton
, UL
, 99),
278 /* TODO: Following functions are not implemented yet */