1- From bb17d740b50e98b67c4bdc6449e874568993aa84 Mon Sep 17 00:00:00 2001
1+ From 24a4e9494f8b2d78936d08ffdfe4cf84cf35e76b Mon Sep 17 00:00:00 2001
22From: Andy-Python-Programmer <andypythonappdeveloper@gmail.com>
33Date: Fri, 8 Jul 2022 12:32:32 +1000
44Subject: [PATCH] yes
55
66Signed-off-by: Andy-Python-Programmer <andypythonappdeveloper@gmail.com>
77---
8+ .gitignore | 2 +
89 options/ansi/generic/stdlib-stubs.cpp | 142 +++++++++++++++++++++-----
910 options/glibc/generic/execinfo.cpp | 5 +-
1011 options/rtdl/generic/linker.cpp | 2 +-
1112 sysdeps/aero/generic/aero.cpp | 38 +++----
1213 sysdeps/aero/generic/filesystem.cpp | 25 ++++-
13- sysdeps/aero/generic/sockets.cpp | 65 +++++++++++-
14- sysdeps/aero/include/aero/syscall.h | 2 +
15- 7 files changed, 225 insertions(+), 54 deletions(-)
14+ sysdeps/aero/generic/sockets.cpp | 77 ++ +++++++++++-
15+ sysdeps/aero/include/aero/syscall.h | 4 +
16+ 8 files changed, 241 insertions(+), 54 deletions(-)
1617
18+ diff --git a/.gitignore b/.gitignore
19+ index fdd60a00..9f811f47 100644
20+ --- a/.gitignore
21+ +++ b/.gitignore
22+ @@ -3,3 +3,5 @@ subprojects
23+ *.xbstrap
24+ # editor configs:
25+ .vscode
26+ + # clangd cache files:
27+ + .cache
1728diff --git a/options/ansi/generic/stdlib-stubs.cpp b/options/ansi/generic/stdlib-stubs.cpp
1829index 4836391e..2a73c6d0 100644
1930--- a/options/ansi/generic/stdlib-stubs.cpp
@@ -316,7 +327,7 @@ index a3e2aca2..4187059e 100644
316327+ }
317328 } // namespace mlibc
318329diff --git a/sysdeps/aero/generic/sockets.cpp b/sysdeps/aero/generic/sockets.cpp
319- index b6b18fe7..33609ca4 100644
330+ index b6b18fe7..e03c634b 100644
320331--- a/sysdeps/aero/generic/sockets.cpp
321332+++ b/sysdeps/aero/generic/sockets.cpp
322333@@ -1,5 +1,6 @@
@@ -332,16 +343,28 @@ index b6b18fe7..33609ca4 100644
332343
333344- int sys_accept(int fd, int *newfd) {
334345- auto result = syscall(SYS_ACCEPT, fd);
335- + int sys_accept(int fd , int *newfd, struct sockaddr *addr_ptr, socklen_t *addr_length) {
336- + auto result = syscall(SYS_ACCEPT, fd , addr_ptr, addr_length);
346+ + int sys_accept(int sockfd , int *newfd, struct sockaddr *addr_ptr, socklen_t *addr_length) {
347+ + auto result = syscall(SYS_ACCEPT, sockfd , addr_ptr, addr_length);
337348
338349 if (result < 0) {
339350 return -result;
340- @@ -56,4 +57,64 @@ int sys_accept(int fd, int *newfd) {
351+ @@ -56,4 +57,76 @@ int sys_accept(int fd, int *newfd) {
341352 *newfd = result;
342353 return 0;
343354 }
344355+
356+ +
357+ + int sys_msg_recv(int sockfd, struct msghdr *msg_hdr, int flags, ssize_t *length) {
358+ + auto result = syscall(SYS_SOCK_RECV, sockfd, msg_hdr, flags);
359+ +
360+ + if (result < 0) {
361+ + return -result;
362+ + }
363+ +
364+ + *length = result;
365+ + return 0;
366+ + }
367+ +
345368+ int sys_getsockopt(int fd, int layer, int number, void *__restrict buffer, socklen_t *__restrict size) {
346369+ (void)fd; (void)size;
347370+ if (layer == SOL_SOCKET && number == SO_PEERCRED) {
@@ -403,15 +426,17 @@ index b6b18fe7..33609ca4 100644
403426+ }
404427 } // namespace mlibc
405428diff --git a/sysdeps/aero/include/aero/syscall.h b/sysdeps/aero/include/aero/syscall.h
406- index 12f8dc61..fcc219a9 100644
429+ index 12f8dc61..50f8cfa7 100644
407430--- a/sysdeps/aero/include/aero/syscall.h
408431+++ b/sysdeps/aero/include/aero/syscall.h
409- @@ -64,6 +64,8 @@
432+ @@ -64,6 +64,10 @@
410433 #define SYS_FUTEX_WAIT 57
411434 #define SYS_FUTEX_WAKE 58
412435 #define SYS_LINK 59
413436+ #define SYS_BACKTRACE 60
414437+ #define SYS_POLL 61
438+ + #define SYS_EXIT_THREAD 62
439+ + #define SYS_SOCK_RECV 63
415440
416441 // Invalid syscall used to trigger a log error in the kernel (as a hint)
417442 // so, that we can implement the syscall in the kernel.
0 commit comments