From fc00c656c96528112d05cf0edf8631bd5eaea446 Mon Sep 17 00:00:00 2001 From: Kacper Date: Sun, 7 Dec 2025 20:10:31 +0100 Subject: Add build system scaffolding and libc headers --- lib/libc/socket/accept.c | 8 ++++++++ lib/libc/socket/accept4.c | 8 ++++++++ lib/libc/socket/bind.c | 7 +++++++ lib/libc/socket/connect.c | 7 +++++++ lib/libc/socket/getpeername.c | 8 ++++++++ lib/libc/socket/getsockname.c | 8 ++++++++ lib/libc/socket/getsockopt.c | 9 +++++++++ lib/libc/socket/listen.c | 7 +++++++ lib/libc/socket/recv.c | 7 +++++++ lib/libc/socket/recvfrom.c | 10 ++++++++++ lib/libc/socket/recvmsg.c | 7 +++++++ lib/libc/socket/send.c | 7 +++++++ lib/libc/socket/sendmsg.c | 7 +++++++ lib/libc/socket/sendto.c | 9 +++++++++ lib/libc/socket/setsockopt.c | 9 +++++++++ lib/libc/socket/shutdown.c | 6 ++++++ lib/libc/socket/sockatmark.c | 8 ++++++++ lib/libc/socket/socket.c | 6 ++++++ lib/libc/socket/socketpair.c | 6 ++++++ 19 files changed, 144 insertions(+) create mode 100644 lib/libc/socket/accept.c create mode 100644 lib/libc/socket/accept4.c create mode 100644 lib/libc/socket/bind.c create mode 100644 lib/libc/socket/connect.c create mode 100644 lib/libc/socket/getpeername.c create mode 100644 lib/libc/socket/getsockname.c create mode 100644 lib/libc/socket/getsockopt.c create mode 100644 lib/libc/socket/listen.c create mode 100644 lib/libc/socket/recv.c create mode 100644 lib/libc/socket/recvfrom.c create mode 100644 lib/libc/socket/recvmsg.c create mode 100644 lib/libc/socket/send.c create mode 100644 lib/libc/socket/sendmsg.c create mode 100644 lib/libc/socket/sendto.c create mode 100644 lib/libc/socket/setsockopt.c create mode 100644 lib/libc/socket/shutdown.c create mode 100644 lib/libc/socket/sockatmark.c create mode 100644 lib/libc/socket/socket.c create mode 100644 lib/libc/socket/socketpair.c (limited to 'lib/libc/socket') 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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 +#include + +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 + +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 +#include + +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 + +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 + +int socketpair(int domain, int type, int protocol, int socket_vector[2]) +{ + return syscall(socketpair, domain, type, protocol, socket_vector); +} -- cgit v1.2.3