7 #include <sys/socket.h>
8 extern int socketcall(int call, unsigned long *args);
10 /* Various socketcall numbers */
16 #define SYS_GETSOCKNAME 6
17 #define SYS_GETPEERNAME 7
18 #define SYS_SOCKETPAIR 8
22 #define SYS_RECVFROM 12
23 #define SYS_SHUTDOWN 13
24 #define SYS_SETSOCKOPT 14
25 #define SYS_GETSOCKOPT 15
26 #define SYS_SENDMSG 16
27 #define SYS_RECVMSG 17
32 #include <sys/socket.h>
34 #define __NR_accept __NR___libc_accept
35 _syscall3(int, __libc_accept, int, call, struct sockaddr *, addr, socklen_t *,addrlen);
36 weak_alias(__libc_accept, accept);
38 int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
40 unsigned long args[3];
43 args[1] = (unsigned long) addr;
44 args[2] = (unsigned long) addrlen;
45 return socketcall(SYS_ACCEPT, args);
48 weak_alias(__libc_accept, accept);
52 #include <sys/socket.h>
54 _syscall3(int, bind, int, sockfd, const struct sockaddr *, myaddr, socklen_t, addrlen);
56 int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
58 unsigned long args[3];
61 args[1] = (unsigned long) myaddr;
63 return socketcall(SYS_BIND, args);
69 #include <sys/socket.h>
71 #define __NR_connect __NR___libc_connect
72 _syscall3(int, __libc_connect, int, sockfd, const struct sockaddr *, saddr, socklen_t, addrlen);
74 int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
76 unsigned long args[3];
79 args[1] = (unsigned long) saddr;
81 return socketcall(SYS_CONNECT, args);
84 weak_alias(__libc_connect, connect);
88 #include <sys/socket.h>
89 #ifdef __NR_getpeername
90 _syscall3(int, getpeername, int, sockfd, struct, sockaddr *, addr, socklen_t *,paddrlen);
92 int getpeername(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
94 unsigned long args[3];
97 args[1] = (unsigned long) addr;
98 args[2] = (unsigned long) paddrlen;
99 return socketcall(SYS_GETPEERNAME, args);
105 #include <sys/socket.h>
106 #ifdef __NR_getsockname
107 _syscall3(int, getsockname, int, sockfd, struct, sockaddr *, addr, socklen_t *,paddrlen);
109 int getsockname(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
111 unsigned long args[3];
114 args[1] = (unsigned long) addr;
115 args[2] = (unsigned long) paddrlen;
116 return socketcall(SYS_GETSOCKNAME, args);
122 #include <sys/socket.h>
123 #ifdef __NR_getsockopt
124 _syscall5(int, getsockopt, int, fd, int, level, int, optname, __ptr_t, optval, socklen_t *, optlen);
126 int getsockopt(int fd, int level, int optname, __ptr_t optval,
129 unsigned long args[5];
134 args[3] = (unsigned long) optval;
135 args[4] = (unsigned long) optlen;
136 return (socketcall(SYS_GETSOCKOPT, args));
142 #include <sys/socket.h>
144 _syscall2(int, listen, int, sockfd, int, backlog);
146 int listen(int sockfd, int backlog)
148 unsigned long args[2];
152 return socketcall(SYS_LISTEN, args);
158 #include <sys/socket.h>
160 #define __NR_recv __NR___libc_recv
161 _syscall4(int, __libc_recv, int, sockfd, __ptr_t, buffer, size_t, len, int, flags);
163 /* recv, recvfrom added by bir7@leland.stanford.edu */
164 int __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
166 unsigned long args[4];
169 args[1] = (unsigned long) buffer;
172 return (socketcall(SYS_RECV, args));
175 weak_alias(__libc_recv, recv);
179 #include <sys/socket.h>
181 #define __NR_recvfrom __NR___libc_recvfrom
182 _syscall6(int, __libc_recvfrom, int, sockfd, __ptr_t, buffer, size_t, len, int, flags,
183 struct sockaddr *, to, socklen_t *, tolen);
185 /* recv, recvfrom added by bir7@leland.stanford.edu */
186 int __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
187 struct sockaddr *to, socklen_t * tolen)
189 unsigned long args[6];
192 args[1] = (unsigned long) buffer;
195 args[4] = (unsigned long) to;
196 args[5] = (unsigned long) tolen;
197 return (socketcall(SYS_RECVFROM, args));
200 weak_alias(__libc_recvfrom, recvfrom);
204 #include <sys/socket.h>
206 #define __NR_recvmsg __NR___libc_recvmsg
207 _syscall3(int, __libc_recvmsg, int, sockfd, struct msghdr *, msg, int, flags);
209 int __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
211 unsigned long args[3];
214 args[1] = (unsigned long) msg;
216 return (socketcall(SYS_RECVMSG, args));
219 weak_alias(__libc_recvmsg, recvmsg);
223 #include <sys/socket.h>
225 #define __NR_send __NR___libc_send
226 _syscall4(int, __libc_send, int, sockfd, const void *, buffer, size_t, len, int, flags);
228 /* send, sendto added by bir7@leland.stanford.edu */
229 int __libc_send(int sockfd, const void *buffer, size_t len, int flags)
231 unsigned long args[4];
234 args[1] = (unsigned long) buffer;
237 return (socketcall(SYS_SEND, args));
240 weak_alias(__libc_send, send);
244 #include <sys/socket.h>
246 #define __NR_sendmsg __NR___libc_sendmsg
247 _syscall3(int, __libc_sendmsg, int, sockfd, const struct msghdr *, msg, int, flags);
249 int __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
251 unsigned long args[3];
254 args[1] = (unsigned long) msg;
256 return (socketcall(SYS_SENDMSG, args));
259 weak_alias(__libc_sendmsg, sendmsg);
263 #include <sys/socket.h>
265 #define __NR_sendto __NR___libc_sendto
266 _syscall6(int, __libc_sendto, int, sockfd, const void *, buffer, size_t, len,
267 int, flags, const struct sockaddr *, to, socklen_t, tolen);
269 /* send, sendto added by bir7@leland.stanford.edu */
270 int __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,
271 const struct sockaddr *to, socklen_t tolen)
273 unsigned long args[6];
276 args[1] = (unsigned long) buffer;
279 args[4] = (unsigned long) to;
281 return (socketcall(SYS_SENDTO, args));
284 weak_alias(__libc_sendto, sendto);
288 #include <sys/socket.h>
289 #ifdef __NR_setsockopt
290 _syscall5(int, setsockopt, int, fd, int, level, int, optname, const void *, optval, socklen_t, optlen);
292 /* [sg]etsockoptions by bir7@leland.stanford.edu */
293 int setsockopt(int fd, int level, int optname, const void *optval,
296 unsigned long args[5];
301 args[3] = (unsigned long) optval;
303 return (socketcall(SYS_SETSOCKOPT, args));
309 #include <sys/socket.h>
311 _syscall2(int, shutdown, int, sockfd, int, how);
313 /* shutdown by bir7@leland.stanford.edu */
314 int shutdown(int sockfd, int how)
316 unsigned long args[2];
320 return (socketcall(SYS_SHUTDOWN, args));
326 #include <sys/socket.h>
328 _syscall3(int, socket, int, family, int, type, int, protocol);
330 int socket(int family, int type, int protocol)
332 unsigned long args[3];
336 args[2] = (unsigned long) protocol;
337 return socketcall(SYS_SOCKET, args);
343 #include <sys/socket.h>
344 #ifdef __NR_socketpair
345 _syscall4(int, socketpair, int, family, int, type, int, protocol, int, sockvec[2]);
347 int socketpair(int family, int type, int protocol, int sockvec[2])
349 unsigned long args[4];
354 args[3] = (unsigned long) sockvec;
355 return socketcall(SYS_SOCKETPAIR, args);