From 58ceae44e700c5248065ee6987aca6ff52ceffd0 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 24 Aug 2022 20:41:32 -0600 Subject: [PATCH] ld_so init for aarch64 --- src/ld_so/mod.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/ld_so/mod.rs b/src/ld_so/mod.rs index 74f3a73150..0d46adaa11 100644 --- a/src/ld_so/mod.rs +++ b/src/ld_so/mod.rs @@ -144,6 +144,20 @@ pub unsafe fn init(sp: &'static Stack) { const ARCH_GET_FS: usize = 0x1003; syscall!(ARCH_PRCTL, ARCH_GET_FS, &mut tp as *mut usize); } + #[cfg(all(target_os = "redox", target_arch = "aarch64"))] + { + let mut env = syscall::EnvRegisters::default(); + + let file = syscall::open("thisproc:current/regs/env", syscall::O_CLOEXEC | syscall::O_RDONLY) + .expect_notls("failed to open handle for process registers"); + + let _ = syscall::read(file, &mut env) + .expect_notls("failed to read tpidr_el0"); + + let _ = syscall::close(file); + + tp = env.tpidr_el0; + } #[cfg(all(target_os = "redox", target_arch = "x86"))] { let mut env = syscall::EnvRegisters::default();