summaryrefslogtreecommitdiff
path: root/lib/libc/internal/arch/aarch64
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/internal/arch/aarch64')
-rw-r--r--lib/libc/internal/arch/aarch64/thread_self.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/libc/internal/arch/aarch64/thread_self.c b/lib/libc/internal/arch/aarch64/thread_self.c
new file mode 100644
index 00000000..543b07ab
--- /dev/null
+++ b/lib/libc/internal/arch/aarch64/thread_self.c
@@ -0,0 +1,8 @@
+#include <__thread.h>
+
+inline struct __thread_self *__thread_self(void)
+{
+ struct __thread_self *self;
+ __asm__("mrs %0, tpidr_el0" : "=r"(self));
+ return self;
+}