don't expose select if POSIXC_SELECT is defined
[AROS.git] / workbench / network / common / include / clib / bsdsocket_protos.h
blobeac757b198de25160885b8fa064130cb185fbe49
1 #ifndef CLIB_BSDSOCKET_PROTOS_H
2 #define CLIB_BSDSOCKET_PROTOS_H
4 /*
5 Copyright © 1995-2017, The AROS Development Team. All rights reserved.
6 */
8 #include <aros/libcall.h>
9 #include <sys/types.h>
10 #include <sys/select.h>
12 AROS_LP3(int, socket,
13 AROS_LPA(int, domain, D0),
14 AROS_LPA(int, type, D1),
15 AROS_LPA(int, protocol, D2),
16 LIBBASETYPEPTR, SocketBase, 5, BSDSocket
18 AROS_LP3(int, bind,
19 AROS_LPA(int, s, D0),
20 AROS_LPA(struct sockaddr *, name, A0),
21 AROS_LPA(socklen_t, namelen, D1),
22 LIBBASETYPEPTR, SocketBase, 6, BSDSocket
24 AROS_LP2(int, listen,
25 AROS_LPA(int, s, D0),
26 AROS_LPA(int, backlog, D1),
27 LIBBASETYPEPTR, SocketBase, 7, BSDSocket
29 AROS_LP3(int, accept,
30 AROS_LPA(int, s, D0),
31 AROS_LPA(struct sockaddr *, addr, A0),
32 AROS_LPA(socklen_t *, addrlen, A1),
33 LIBBASETYPEPTR, SocketBase, 8, BSDSocket
35 AROS_LP3(int, connect,
36 AROS_LPA(int, s, D0),
37 AROS_LPA(struct sockaddr *, name, A0),
38 AROS_LPA(socklen_t, namelen, D1),
39 LIBBASETYPEPTR, SocketBase, 9, BSDSocket
41 AROS_LP6(int, sendto,
42 AROS_LPA(int, s, D0),
43 AROS_LPA(const void *, msg, A0),
44 AROS_LPA(int, len, D1),
45 AROS_LPA(int, flags, D2),
46 AROS_LPA(const struct sockaddr *, to, A1),
47 AROS_LPA(socklen_t, tolen, D3),
48 LIBBASETYPEPTR, SocketBase, 10, BSDSocket
50 AROS_LP4(int, send,
51 AROS_LPA(int, s, D0),
52 AROS_LPA(const void *, msg, A0),
53 AROS_LPA(int, len, D1),
54 AROS_LPA(int, flags, D2),
55 LIBBASETYPEPTR, SocketBase, 11, BSDSocket
57 AROS_LP6(int, recvfrom,
58 AROS_LPA(int, s, D0),
59 AROS_LPA(void *, buf, A0),
60 AROS_LPA(int, len, D1),
61 AROS_LPA(int, flags, D2),
62 AROS_LPA(struct sockaddr *, from, A1),
63 AROS_LPA(socklen_t *, fromlen, A2),
64 LIBBASETYPEPTR, SocketBase, 12, BSDSocket
66 AROS_LP4(int, recv,
67 AROS_LPA(int, s, D0),
68 AROS_LPA(void *, buf, A0),
69 AROS_LPA(int, len, D1),
70 AROS_LPA(int, flags, D2),
71 LIBBASETYPEPTR, SocketBase, 13, BSDSocket
73 AROS_LP2(int, shutdown,
74 AROS_LPA(int, s, D0),
75 AROS_LPA(int, how, D1),
76 LIBBASETYPEPTR, SocketBase, 14, BSDSocket
78 AROS_LP5(int, setsockopt,
79 AROS_LPA(int, s, D0),
80 AROS_LPA(int, level, D1),
81 AROS_LPA(int, optname, D2),
82 AROS_LPA(void *, optval, A0),
83 AROS_LPA(socklen_t, optlen, D3),
84 LIBBASETYPEPTR, SocketBase, 15, BSDSocket
86 AROS_LP5(int, getsockopt,
87 AROS_LPA(int, s, D0),
88 AROS_LPA(int, level, D1),
89 AROS_LPA(int, optname, D2),
90 AROS_LPA(void *, optval, A0),
91 AROS_LPA(socklen_t *, optlen, A1),
92 LIBBASETYPEPTR, SocketBase, 16, BSDSocket
94 AROS_LP3(int, getsockname,
95 AROS_LPA(int, s, D0),
96 AROS_LPA(struct sockaddr *, name, A0),
97 AROS_LPA(socklen_t *, namelen, A1),
98 LIBBASETYPEPTR, SocketBase, 17, BSDSocket
100 AROS_LP3(int, getpeername,
101 AROS_LPA(int, s, D0),
102 AROS_LPA(struct sockaddr *, name, A0),
103 AROS_LPA(socklen_t *, namelen, A1),
104 LIBBASETYPEPTR, SocketBase, 18, BSDSocket
106 AROS_LP3(int, IoctlSocket,
107 AROS_LPA(int, s, D0),
108 AROS_LPA(unsigned long, request, D1),
109 AROS_LPA(char *, argp, A0),
110 LIBBASETYPEPTR, SocketBase, 19, BSDSocket
112 AROS_LP1(int, CloseSocket,
113 AROS_LPA(int, s, D0),
114 LIBBASETYPEPTR, SocketBase, 20, BSDSocket
116 AROS_LP6(int, WaitSelect,
117 AROS_LPA(int, nfds, D0),
118 AROS_LPA(fd_set *, readfds, A0),
119 AROS_LPA(fd_set *, writefds, A1),
120 AROS_LPA(fd_set *, exceptfds, A2),
121 AROS_LPA(struct timeval *, timeout, A3),
122 AROS_LPA(ULONG *, sigmask, D1),
123 LIBBASETYPEPTR, SocketBase, 21, BSDSocket
125 AROS_LP3(void, SetSocketSignals,
126 AROS_LPA(ULONG, intrmask, D0),
127 AROS_LPA(ULONG, iomask, D1),
128 AROS_LPA(ULONG, urgmask, D2),
129 LIBBASETYPEPTR, SocketBase, 22, BSDSocket
131 AROS_LP0(int, getdtablesize,
132 LIBBASETYPEPTR, SocketBase, 23, BSDSocket
134 AROS_LP4(LONG, ObtainSocket,
135 AROS_LPA(LONG, id, D0),
136 AROS_LPA(LONG, domain, D1),
137 AROS_LPA(LONG, type, D2),
138 AROS_LPA(LONG, protocol, D3),
139 LIBBASETYPEPTR, SocketBase, 24, BSDSocket
141 AROS_LP2(LONG, ReleaseSocket,
142 AROS_LPA(LONG, sd, D0),
143 AROS_LPA(LONG, id, D1),
144 LIBBASETYPEPTR, SocketBase, 25, BSDSocket
146 AROS_LP2(LONG, ReleaseCopyOfSocket,
147 AROS_LPA(LONG, sd, D0),
148 AROS_LPA(LONG, id, D1),
149 LIBBASETYPEPTR, SocketBase, 26, BSDSocket
151 AROS_LP0(LONG, Errno,
152 LIBBASETYPEPTR, SocketBase, 27, BSDSocket
154 AROS_LP2(void, SetErrnoPtr,
155 AROS_LPA(void *, ptr, A0),
156 AROS_LPA(int, size, D0),
157 LIBBASETYPEPTR, SocketBase, 28, BSDSocket
159 AROS_LP1(char *, Inet_NtoA,
160 AROS_LPA(unsigned long, in, D0),
161 LIBBASETYPEPTR, SocketBase, 29, BSDSocket
163 AROS_LP1(unsigned long, inet_addr,
164 AROS_LPA(const char *, cp, A0),
165 LIBBASETYPEPTR, SocketBase, 30, BSDSocket
167 AROS_LP1(unsigned long, Inet_LnaOf,
168 AROS_LPA(unsigned long, in, D0),
169 LIBBASETYPEPTR, SocketBase, 31, BSDSocket
171 AROS_LP1(unsigned long, Inet_NetOf,
172 AROS_LPA(unsigned long, in, D0),
173 LIBBASETYPEPTR, SocketBase, 32, BSDSocket
175 AROS_LP2(unsigned long, Inet_MakeAddr,
176 AROS_LPA(int, net, D0),
177 AROS_LPA(int, lna, D1),
178 LIBBASETYPEPTR, SocketBase, 33, BSDSocket
180 AROS_LP1(unsigned long, inet_network,
181 AROS_LPA(const char *, cp, A0),
182 LIBBASETYPEPTR, SocketBase, 34, BSDSocket
184 AROS_LP1(struct hostent *, gethostbyname,
185 AROS_LPA(const char *, name, A0),
186 LIBBASETYPEPTR, SocketBase, 35, BSDSocket
188 AROS_LP3(struct hostent *, gethostbyaddr,
189 AROS_LPA(const void *, addr, A0),
190 AROS_LPA(int, len, D0),
191 AROS_LPA(int, type, D1),
192 LIBBASETYPEPTR, SocketBase, 36, BSDSocket
194 AROS_LP1(struct netent *, getnetbyname,
195 AROS_LPA(const char *, name, A0),
196 LIBBASETYPEPTR, SocketBase, 37, BSDSocket
198 AROS_LP2(struct netent *, getnetbyaddr,
199 AROS_LPA(long, net, D0),
200 AROS_LPA(int, type, D1),
201 LIBBASETYPEPTR, SocketBase, 38, BSDSocket
203 AROS_LP2(struct servent *, getservbyname,
204 AROS_LPA(char *, name, A0),
205 AROS_LPA(char *, proto, A1),
206 LIBBASETYPEPTR, SocketBase, 39, BSDSocket
208 AROS_LP2(struct servent *, getservbyport,
209 AROS_LPA(int, port, D0),
210 AROS_LPA(char *, proto, A0),
211 LIBBASETYPEPTR, SocketBase, 40, BSDSocket
213 AROS_LP1(struct protoent *, getprotobyname,
214 AROS_LPA(char *, name, A0),
215 LIBBASETYPEPTR, SocketBase, 41, BSDSocket
217 AROS_LP1(struct protoent *, getprotobynumber,
218 AROS_LPA(int, proto, D0),
219 LIBBASETYPEPTR, SocketBase, 42, BSDSocket
221 AROS_LP3(void, vsyslog,
222 AROS_LPA(int, level, D0),
223 AROS_LPA(const char *, format, A0),
224 AROS_LPA(IPTR *, args, A1),
225 LIBBASETYPEPTR, SocketBase, 43, BSDSocket
227 AROS_LP2(int, Dup2Socket,
228 AROS_LPA(int, fd1, D0),
229 AROS_LPA(int, fd2, D1),
230 LIBBASETYPEPTR, SocketBase, 44, BSDSocket
232 AROS_LP3(int, sendmsg,
233 AROS_LPA(int, s, D0),
234 AROS_LPA(const struct msghdr *, msg, A0),
235 AROS_LPA(int, flags, D1),
236 LIBBASETYPEPTR, SocketBase, 45, BSDSocket
238 AROS_LP3(int, recvmsg,
239 AROS_LPA(int, s, D0),
240 AROS_LPA(struct msghdr *, msg, A0),
241 AROS_LPA(int, flags, D1),
242 LIBBASETYPEPTR, SocketBase, 46, BSDSocket
244 AROS_LP2(int, gethostname,
245 AROS_LPA(char *, name, A0),
246 AROS_LPA(int, namelen, D0),
247 LIBBASETYPEPTR, SocketBase, 47, BSDSocket
249 AROS_LP0(long, gethostid,
250 LIBBASETYPEPTR, SocketBase, 48, BSDSocket
252 AROS_LP1(ULONG, SocketBaseTagList,
253 AROS_LPA(struct TagItem *, tagList, A0),
254 LIBBASETYPEPTR, SocketBase, 49, BSDSocket
256 AROS_LP1(LONG, GetSocketEvents,
257 AROS_LPA(ULONG *, eventsp, A0),
258 LIBBASETYPEPTR, SocketBase, 50, BSDSocket
261 /* RoadShow Extensions .. */
262 #if defined(__CONFIG_ROADSHOW__)
263 AROS_LP1(long, bpf_open,
264 AROS_LPA(long, channel, D0),
265 LIBBASETYPEPTR, SocketBase, 61, BSDSocket
267 AROS_LP1(long, bpf_close,
268 AROS_LPA(long, handle, D0),
269 LIBBASETYPEPTR, SocketBase, 62, BSDSocket
271 AROS_LP3(long, bpf_read,
272 AROS_LPA(long, handle, D0),
273 AROS_LPA(void *, buffer, A0),
274 AROS_LPA(long, len, D1),
275 LIBBASETYPEPTR, SocketBase, 63, BSDSocket
277 AROS_LP3(long, bpf_write,
278 AROS_LPA(long, handle, D0),
279 AROS_LPA(void *, buffer, A0),
280 AROS_LPA(long, len, D1),
281 LIBBASETYPEPTR, SocketBase, 64, BSDSocket
283 AROS_LP2(long, bpf_set_notify_mask,
284 AROS_LPA(long, handle, D0),
285 AROS_LPA(unsigned long, mask, D1),
286 LIBBASETYPEPTR, SocketBase, 65, BSDSocket
288 AROS_LP2(long, bpf_set_interrupt_mask,
289 AROS_LPA(long, handle, D0),
290 AROS_LPA(unsigned long, mask, D1),
291 LIBBASETYPEPTR, SocketBase, 66, BSDSocket
293 AROS_LP3(long, bpf_ioctl,
294 AROS_LPA(long, handle, D0),
295 AROS_LPA(unsigned long, request, D1),
296 AROS_LPA(char *, argp, A0),
297 LIBBASETYPEPTR, SocketBase, 67, BSDSocket
299 AROS_LP1(long, bpf_data_waiting,
300 AROS_LPA(long, handle, D0),
301 LIBBASETYPEPTR, SocketBase, 68, BSDSocket
303 AROS_LP1(long, AddRouteTagList,
304 AROS_LPA(struct TagItem *, tags, A0),
305 LIBBASETYPEPTR, SocketBase, 69, BSDSocket
307 AROS_LP1(long, DeleteRouteTagList,
308 AROS_LPA(struct TagItem *, tags, A0),
309 LIBBASETYPEPTR, SocketBase, 70, BSDSocket
311 AROS_LP1(long, ChangeRouteTagList,
312 AROS_LPA(struct TagItem *, tags, A0),
313 LIBBASETYPEPTR, SocketBase, 71, BSDSocket
315 AROS_LP1(void, FreeRouteInfo,
316 AROS_LPA(struct rt_msghdr *, table, A0),
317 LIBBASETYPEPTR, SocketBase, 72, BSDSocket
319 AROS_LP2(struct rt_msghdr *, GetRouteInfo,
320 AROS_LPA(LONG, address_family, D0),
321 AROS_LPA(LONG, flags, D1),
322 LIBBASETYPEPTR, SocketBase, 73, BSDSocket
324 AROS_LP4(long, AddInterfaceTagList,
325 AROS_LPA(STRPTR, name, A0),
326 AROS_LPA(STRPTR, device, A1),
327 AROS_LPA(long, unit, D0),
328 AROS_LPA(struct TagItem *, tags, A2),
329 LIBBASETYPEPTR, SocketBase, 74, BSDSocket
331 AROS_LP2(long, ConfigureInterfaceTagList,
332 AROS_LPA(STRPTR, name, A0),
333 AROS_LPA(struct TagItem *, tags, A1),
334 LIBBASETYPEPTR, SocketBase, 75, BSDSocket
336 AROS_LP1(void, ReleaseInterfaceList,
337 AROS_LPA(struct List *, list, A0),
338 LIBBASETYPEPTR, SocketBase, 76, BSDSocket
340 AROS_LP0(struct List *, ObtainInterfaceList,
341 LIBBASETYPEPTR, SocketBase, 77, BSDSocket
343 AROS_LP2(long, QueryInterfaceTagList,
344 AROS_LPA(STRPTR, name, A0),
345 AROS_LPA(struct TagItem *, tags, A1),
346 LIBBASETYPEPTR, SocketBase, 78, BSDSocket
348 AROS_LP5(LONG, CreateAddrAllocMessageA,
349 AROS_LPA(LONG, version, D0),
350 AROS_LPA(LONG, protocol, D1),
351 AROS_LPA(STRPTR, interface_name, A0),
352 AROS_LPA(struct AddressAllocationMessage *, result_ptr, A1),
353 AROS_LPA(struct TagItem *, tags, A2),
354 LIBBASETYPEPTR, SocketBase, 79, BSDSocket
356 AROS_LP1(void, DeleteAddrAllocMessage,
357 AROS_LPA(struct AddressAllocationMessage *, message, A0),
358 LIBBASETYPEPTR, SocketBase, 80, BSDSocket
360 AROS_LP1(void, BeginInterfaceConfig,
361 AROS_LPA(struct AddressAllocationMessage *, message, A0),
362 LIBBASETYPEPTR, SocketBase, 81, BSDSocket
364 AROS_LP1(void, AbortInterfaceConfig,
365 AROS_LPA(struct AddressAllocationMessage *, message, A0),
366 LIBBASETYPEPTR, SocketBase, 82, BSDSocket
368 AROS_LP3(long, AddNetMonitorHookTagList,
369 AROS_LPA(long, type, D0),
370 AROS_LPA(struct Hook *, hook, A0),
371 AROS_LPA(struct TagItem *, tags, A1),
372 LIBBASETYPEPTR, SocketBase, 83, BSDSocket
374 AROS_LP1(void, RemoveNetMonitorHook,
375 AROS_LPA(struct Hook *, hook, A0),
376 LIBBASETYPEPTR, SocketBase, 84, BSDSocket
378 AROS_LP4(LONG, GetNetworkStatistics,
379 AROS_LPA(LONG, type, D0),
380 AROS_LPA(LONG, version, D1),
381 AROS_LPA(APTR, destination, A0),
382 AROS_LPA(LONG, size, D2),
383 LIBBASETYPEPTR, SocketBase, 85, BSDSocket
385 AROS_LP1(LONG, AddDomainNameServer,
386 AROS_LPA(STRPTR, address, A0),
387 LIBBASETYPEPTR, SocketBase, 86, BSDSocket
389 AROS_LP1(LONG, RemoveDomainNameServer,
390 AROS_LPA(STRPTR, address, A0),
391 LIBBASETYPEPTR, SocketBase, 87, BSDSocket
393 AROS_LP1(void, ReleaseDomainNameServerList,
394 AROS_LPA(struct List *, list, A0),
395 LIBBASETYPEPTR, SocketBase, 88, BSDSocket
397 AROS_LP0(struct List *, ObtainDomainNameServerList,
398 LIBBASETYPEPTR, SocketBase, 89, BSDSocket
400 AROS_LP1(void, setnetent,
401 AROS_LPA(int, stayopen, D0),
402 LIBBASETYPEPTR, SocketBase, 90, BSDSocket
404 AROS_LP0(void, endnetent,
405 LIBBASETYPEPTR, SocketBase, 91, BSDSocket
407 AROS_LP0(struct netent *, getnetent,
408 LIBBASETYPEPTR, SocketBase, 92, BSDSocket
410 AROS_LP1(void, setprotoent,
411 AROS_LPA(int, stayopen, D0),
412 LIBBASETYPEPTR, SocketBase, 93, BSDSocket
414 AROS_LP0(void, endprotoent,
415 LIBBASETYPEPTR, SocketBase, 94, BSDSocket
417 AROS_LP0(struct protoent *, getprotoent,
418 LIBBASETYPEPTR, SocketBase, 95, BSDSocket
420 AROS_LP1(void, setservent,
421 AROS_LPA(int, stayopen, D0),
422 LIBBASETYPEPTR, SocketBase, 96, BSDSocket
424 AROS_LP0(void, endservent,
425 LIBBASETYPEPTR, SocketBase, 97, BSDSocket
427 AROS_LP0(struct servent *, getservent,
428 LIBBASETYPEPTR, SocketBase, 98, BSDSocket
430 AROS_LP2(LONG, inet_aton,
431 AROS_LPA(STRPTR, cp, A0),
432 AROS_LPA(struct in_addr *, addr, A1),
433 LIBBASETYPEPTR, SocketBase, 99, BSDSocket
435 #endif /* __CONFIG_ROADSHOW__ */
437 #if (1)
439 * Stubs to wrap some *nix socket functions
440 * Should they be protected by __BSD_VISIBLE?
442 #define inet_ntoa(addr) Inet_NtoA(((struct in_addr)addr).s_addr)
443 #ifndef POSIXC_SELECT
444 static inline int select(int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *timeout) {return WaitSelect(nfds,rfds,wfds,efds,timeout,NULL);};
445 #endif /* !POSIXC_SELECT */
446 #endif
448 #endif /* CLIB_BSDSOCKET_PROTOS_H */