1
- From bb17d740b50e98b67c4bdc6449e874568993aa84 Mon Sep 17 00:00:00 2001
1
+ From 24a4e9494f8b2d78936d08ffdfe4cf84cf35e76b Mon Sep 17 00:00:00 2001
2
2
From: Andy-Python-Programmer <
[email protected] >
3
3
Date: Fri, 8 Jul 2022 12:32:32 +1000
4
4
Subject: [PATCH] yes
5
5
6
6
Signed-off-by: Andy-Python-Programmer <
[email protected] >
7
7
---
8
+ .gitignore | 2 +
8
9
options/ansi/generic/stdlib-stubs.cpp | 142 +++++++++++++++++++++-----
9
10
options/glibc/generic/execinfo.cpp | 5 +-
10
11
options/rtdl/generic/linker.cpp | 2 +-
11
12
sysdeps/aero/generic/aero.cpp | 38 +++----
12
13
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(-)
16
17
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
17
28
diff --git a/options/ansi/generic/stdlib-stubs.cpp b/options/ansi/generic/stdlib-stubs.cpp
18
29
index 4836391e..2a73c6d0 100644
19
30
--- a/options/ansi/generic/stdlib-stubs.cpp
@@ -316,7 +327,7 @@ index a3e2aca2..4187059e 100644
316
327
+ }
317
328
} // namespace mlibc
318
329
diff --git a/sysdeps/aero/generic/sockets.cpp b/sysdeps/aero/generic/sockets.cpp
319
- index b6b18fe7..33609ca4 100644
330
+ index b6b18fe7..e03c634b 100644
320
331
--- a/sysdeps/aero/generic/sockets.cpp
321
332
+++ b/sysdeps/aero/generic/sockets.cpp
322
333
@@ -1,5 +1,6 @@
@@ -332,16 +343,28 @@ index b6b18fe7..33609ca4 100644
332
343
333
344
- int sys_accept(int fd, int *newfd) {
334
345
- 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);
337
348
338
349
if (result < 0) {
339
350
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) {
341
352
*newfd = result;
342
353
return 0;
343
354
}
344
355
+
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
+ +
345
368
+ int sys_getsockopt(int fd, int layer, int number, void *__restrict buffer, socklen_t *__restrict size) {
346
369
+ (void)fd; (void)size;
347
370
+ if (layer == SOL_SOCKET && number == SO_PEERCRED) {
@@ -403,15 +426,17 @@ index b6b18fe7..33609ca4 100644
403
426
+ }
404
427
} // namespace mlibc
405
428
diff --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
407
430
--- a/sysdeps/aero/include/aero/syscall.h
408
431
+++ b/sysdeps/aero/include/aero/syscall.h
409
- @@ -64,6 +64,8 @@
432
+ @@ -64,6 +64,10 @@
410
433
#define SYS_FUTEX_WAIT 57
411
434
#define SYS_FUTEX_WAKE 58
412
435
#define SYS_LINK 59
413
436
+ #define SYS_BACKTRACE 60
414
437
+ #define SYS_POLL 61
438
+ + #define SYS_EXIT_THREAD 62
439
+ + #define SYS_SOCK_RECV 63
415
440
416
441
// Invalid syscall used to trigger a log error in the kernel (as a hint)
417
442
// so, that we can implement the syscall in the kernel.
0 commit comments