summaryrefslogtreecommitdiff
path: root/lib/libc/socket
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/socket')
-rw-r--r--lib/libc/socket/accept.c8
-rw-r--r--lib/libc/socket/accept4.c8
-rw-r--r--lib/libc/socket/bind.c7
-rw-r--r--lib/libc/socket/connect.c7
-rw-r--r--lib/libc/socket/getpeername.c8
-rw-r--r--lib/libc/socket/getsockname.c8
-rw-r--r--lib/libc/socket/getsockopt.c9
-rw-r--r--lib/libc/socket/listen.c7
-rw-r--r--lib/libc/socket/recv.c7
-rw-r--r--lib/libc/socket/recvfrom.c10
-rw-r--r--lib/libc/socket/recvmsg.c7
-rw-r--r--lib/libc/socket/send.c7
-rw-r--r--lib/libc/socket/sendmsg.c7
-rw-r--r--lib/libc/socket/sendto.c9
-rw-r--r--lib/libc/socket/setsockopt.c9
-rw-r--r--lib/libc/socket/shutdown.c6
-rw-r--r--lib/libc/socket/sockatmark.c8
-rw-r--r--lib/libc/socket/socket.c6
-rw-r--r--lib/libc/socket/socketpair.c6
19 files changed, 144 insertions, 0 deletions
diff --git a/lib/libc/socket/accept.c b/lib/libc/socket/accept.c
new file mode 100644
index 00000000..61c469c8
--- /dev/null
+++ b/lib/libc/socket/accept.c
@@ -0,0 +1,8 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int accept(int socket, struct sockaddr *restrict address,
+ socklen_t *restrict address_len)
+{
+ return syscall(accept, socket, address, address_len);
+}
diff --git a/lib/libc/socket/accept4.c b/lib/libc/socket/accept4.c
new file mode 100644
index 00000000..8171098b
--- /dev/null
+++ b/lib/libc/socket/accept4.c
@@ -0,0 +1,8 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int accept4(int socket, struct sockaddr *restrict address,
+ socklen_t *restrict address_len, int flag)
+{
+ return syscall(accept4, socket, address, address_len, flag);
+}
diff --git a/lib/libc/socket/bind.c b/lib/libc/socket/bind.c
new file mode 100644
index 00000000..111ac321
--- /dev/null
+++ b/lib/libc/socket/bind.c
@@ -0,0 +1,7 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int bind(int socket, const struct sockaddr *address, socklen_t address_len)
+{
+ return syscall(bind, socket, address, address_len);
+}
diff --git a/lib/libc/socket/connect.c b/lib/libc/socket/connect.c
new file mode 100644
index 00000000..fc4502cb
--- /dev/null
+++ b/lib/libc/socket/connect.c
@@ -0,0 +1,7 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int connect(int socket, const struct sockaddr *address, socklen_t address_len)
+{
+ return syscall(connect, socket, address, address_len);
+}
diff --git a/lib/libc/socket/getpeername.c b/lib/libc/socket/getpeername.c
new file mode 100644
index 00000000..4b694220
--- /dev/null
+++ b/lib/libc/socket/getpeername.c
@@ -0,0 +1,8 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int getpeername(int socket, struct sockaddr *restrict address,
+ socklen_t *restrict address_len)
+{
+ return syscall(getpeername, socket, address, address_len);
+}
diff --git a/lib/libc/socket/getsockname.c b/lib/libc/socket/getsockname.c
new file mode 100644
index 00000000..d8b356fb
--- /dev/null
+++ b/lib/libc/socket/getsockname.c
@@ -0,0 +1,8 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int getsockname(int socket, struct sockaddr *restrict address,
+ socklen_t *restrict address_len)
+{
+ return syscall(getsockname, socket, address, address_len);
+}
diff --git a/lib/libc/socket/getsockopt.c b/lib/libc/socket/getsockopt.c
new file mode 100644
index 00000000..2ab56774
--- /dev/null
+++ b/lib/libc/socket/getsockopt.c
@@ -0,0 +1,9 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int getsockopt(int socket, int level, int option_name,
+ void *restrict option_value, socklen_t *restrict option_len)
+{
+ return syscall(getsockopt, socket, level, option_name, option_value,
+ option_len);
+}
diff --git a/lib/libc/socket/listen.c b/lib/libc/socket/listen.c
new file mode 100644
index 00000000..3b107450
--- /dev/null
+++ b/lib/libc/socket/listen.c
@@ -0,0 +1,7 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int listen(int socket, int backlog)
+{
+ return syscall(listen, backlog);
+}
diff --git a/lib/libc/socket/recv.c b/lib/libc/socket/recv.c
new file mode 100644
index 00000000..87bec811
--- /dev/null
+++ b/lib/libc/socket/recv.c
@@ -0,0 +1,7 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+ssize_t recv(int socket, void *buffer, size_t length, int flags)
+{
+ return syscall(recvfrom, socket, buffer, length, flags, 0, 0);
+}
diff --git a/lib/libc/socket/recvfrom.c b/lib/libc/socket/recvfrom.c
new file mode 100644
index 00000000..a3faa0bb
--- /dev/null
+++ b/lib/libc/socket/recvfrom.c
@@ -0,0 +1,10 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+ssize_t recvfrom(int socket, void *restrict buffer, size_t length, int flags,
+ struct sockaddr *restrict address,
+ socklen_t *restrict address_len)
+{
+ return syscall(recvfrom, socket, buffer, length, flags, address,
+ address_len);
+}
diff --git a/lib/libc/socket/recvmsg.c b/lib/libc/socket/recvmsg.c
new file mode 100644
index 00000000..29183f35
--- /dev/null
+++ b/lib/libc/socket/recvmsg.c
@@ -0,0 +1,7 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+ssize_t recvmsg(int socket, struct msghdr *message, int flags)
+{
+ return syscall(recvmsg, socket, message, flags);
+}
diff --git a/lib/libc/socket/send.c b/lib/libc/socket/send.c
new file mode 100644
index 00000000..a2760a2f
--- /dev/null
+++ b/lib/libc/socket/send.c
@@ -0,0 +1,7 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+ssize_t send(int socket, const void *buffer, size_t length, int flags)
+{
+ return syscall(sendto, socket, buffer, length, flags, 0, 0);
+}
diff --git a/lib/libc/socket/sendmsg.c b/lib/libc/socket/sendmsg.c
new file mode 100644
index 00000000..6414021c
--- /dev/null
+++ b/lib/libc/socket/sendmsg.c
@@ -0,0 +1,7 @@
+#include <syscall.h>
+#include <sys/socket.h>
+
+ssize_t sendmsg(int socket, const struct msghdr *message, int flags)
+{
+ return syscall(sendmsg, socket, message, flags);
+}
diff --git a/lib/libc/socket/sendto.c b/lib/libc/socket/sendto.c
new file mode 100644
index 00000000..f9628f50
--- /dev/null
+++ b/lib/libc/socket/sendto.c
@@ -0,0 +1,9 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+ssize_t sendto(int socket, const void *message, size_t length, int flags,
+ const struct sockaddr *dest_addr, socklen_t dest_len)
+{
+ return syscall(sendto, socket, message, length, flags, dest_addr,
+ dest_len);
+}
diff --git a/lib/libc/socket/setsockopt.c b/lib/libc/socket/setsockopt.c
new file mode 100644
index 00000000..8f25bab4
--- /dev/null
+++ b/lib/libc/socket/setsockopt.c
@@ -0,0 +1,9 @@
+#include <sys/socket.h>
+#include <syscall.h>
+
+int setsockopt(int socket, int level, int option_name, const void *option_value,
+ socklen_t option_len)
+{
+ return syscall(setsockopt, socket, level, option_name, option_value,
+ option_len);
+}
diff --git a/lib/libc/socket/shutdown.c b/lib/libc/socket/shutdown.c
new file mode 100644
index 00000000..96c8053c
--- /dev/null
+++ b/lib/libc/socket/shutdown.c
@@ -0,0 +1,6 @@
+#include <syscall.h>
+
+int shutdown(int socket, int how)
+{
+ return syscall(shutdown, socket, how);
+}
diff --git a/lib/libc/socket/sockatmark.c b/lib/libc/socket/sockatmark.c
new file mode 100644
index 00000000..f7178aa0
--- /dev/null
+++ b/lib/libc/socket/sockatmark.c
@@ -0,0 +1,8 @@
+#include <syscall.h>
+#include <asm-generic/sockios.h>
+
+int sockatmark(int s)
+{
+ int arg = 0;
+ return syscall(ioctl, s, SIOCATMARK, &arg) < 0 ? -1 : arg;
+}
diff --git a/lib/libc/socket/socket.c b/lib/libc/socket/socket.c
new file mode 100644
index 00000000..34b5d67b
--- /dev/null
+++ b/lib/libc/socket/socket.c
@@ -0,0 +1,6 @@
+#include <syscall.h>
+
+int socket(int domain, int type, int protocol)
+{
+ return syscall(socket, domain, type, protocol);
+}
diff --git a/lib/libc/socket/socketpair.c b/lib/libc/socket/socketpair.c
new file mode 100644
index 00000000..6e78b30b
--- /dev/null
+++ b/lib/libc/socket/socketpair.c
@@ -0,0 +1,6 @@
+#include <syscall.h>
+
+int socketpair(int domain, int type, int protocol, int socket_vector[2])
+{
+ return syscall(socketpair, domain, type, protocol, socket_vector);
+}