1
- From 97eb1ba09c3e4263e1eb621b53e6e4c5f313a69b Mon Sep 17 00:00:00 2001
1
+ From 5e87b2932145620154c27710ca15391d2b2dfb97 Mon Sep 17 00:00:00 2001
2
2
3
3
Date: Sun, 6 Jun 2021 16:37:54 +1000
4
4
Subject: [PATCH] targets: add aero target port
10
10
meson.build | 4 +
11
11
options/rtdl/generic/main.cpp | 8 +-
12
12
sysdeps/aero/crt-x86_64/crt0.S | 8 ++
13
- sysdeps/aero/generic/aero.cc | 123 ++++++++++++++++
13
+ sysdeps/aero/generic/aero.cc | 127 + ++++++++++++++++
14
14
sysdeps/aero/generic/entry.cc | 32 +++++
15
15
sysdeps/aero/generic/filesystem.cc | 91 ++++++++++++
16
16
sysdeps/aero/generic/sockets.cc | 0
41
41
sysdeps/aero/include/abi-bits/uid_t.h | 1 +
42
42
sysdeps/aero/include/abi-bits/vm-flags.h | 1 +
43
43
sysdeps/aero/include/abi-bits/wait.h | 1 +
44
- sysdeps/aero/include/aero/syscall.h | 147 ++++++++++++++++++++
44
+ sysdeps/aero/include/aero/syscall.h | 148 ++++++++++++++++++++
45
45
sysdeps/aero/include/mlibc/thread-entry.hpp | 10 ++
46
46
sysdeps/aero/meson.build | 60 ++++++++
47
- 39 files changed, 567 insertions(+), 5 deletions(-)
47
+ 39 files changed, 572 insertions(+), 5 deletions(-)
48
48
create mode 100644 abis/aero/auxv.h
49
49
create mode 100644 sysdeps/aero/crt-x86_64/crt0.S
50
50
create mode 100644 sysdeps/aero/generic/aero.cc
@@ -179,10 +179,10 @@ index 0000000..190b5a0
179
179
+ .size _start, . - _start
180
180
diff --git a/sysdeps/aero/generic/aero.cc b/sysdeps/aero/generic/aero.cc
181
181
new file mode 100644
182
- index 0000000..558a260
182
+ index 0000000..1a7342d
183
183
--- /dev/null
184
184
+++ b/sysdeps/aero/generic/aero.cc
185
- @@ -0,0 +1,123 @@
185
+ @@ -0,0 +1,127 @@
186
186
+ #include <aero/syscall.h>
187
187
+ #include <stddef.h>
188
188
+ #include <bits/ensure.h>
@@ -198,7 +198,11 @@ index 0000000..558a260
198
198
+ #define ARCH_GET_GS 0x1004
199
199
+
200
200
+ namespace mlibc {
201
- + int sys_futex_tid() UNIMPLEMENTED("sys_futex_tid")
201
+ + int sys_futex_tid() {
202
+ + // SAFETY: gettid does not return any errors (ie. the call is always successful).
203
+ + return syscall(SYS_GETTID);
204
+ + }
205
+ +
202
206
+ int sys_futex_wait(int *pointer, int expected) UNIMPLEMENTED("sys_futex_wait")
203
207
+ int sys_futex_wake(int *pointer) UNIMPLEMENTED("sys_futex_wake")
204
208
+
@@ -708,10 +712,10 @@ index 0000000..6d911c7
708
712
\ No newline at end of file
709
713
diff --git a/sysdeps/aero/include/aero/syscall.h b/sysdeps/aero/include/aero/syscall.h
710
714
new file mode 100644
711
- index 0000000..eea6b8e
715
+ index 0000000..0c26a63
712
716
--- /dev/null
713
717
+++ b/sysdeps/aero/include/aero/syscall.h
714
- @@ -0,0 +1,147 @@
718
+ @@ -0,0 +1,148 @@
715
719
+ #ifndef SYSCALL_H
716
720
+ #define SYSCALL_H
717
721
+
@@ -747,6 +751,7 @@ index 0000000..eea6b8e
747
751
+ #define SYS_LISTEN 26
748
752
+ #define SYS_ACCEPT 27
749
753
+ #define SYS_SEEK 28
754
+ + #define SYS_GETTID 29
750
755
+
751
756
+ // Invalid syscall used to trigger a log error in the kernel (as a hint)
752
757
+ // so, that we can implement the syscall in the kernel.
0 commit comments