From 4f1920ab96ece66c104497a8d2ddffce3fcf58c8 Mon Sep 17 00:00:00 2001 From: Anhad Singh Date: Mon, 1 Dec 2025 14:35:10 +1100 Subject: [PATCH] feat(ld_so/tcb): implement `os_arch_activate` for aarch64 linux Signed-off-by: Anhad Singh --- src/ld_so/tcb.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/ld_so/tcb.rs b/src/ld_so/tcb.rs index 6dbf4cbb39..2375ce1228 100644 --- a/src/ld_so/tcb.rs +++ b/src/ld_so/tcb.rs @@ -343,6 +343,19 @@ impl Tcb { } } + #[cfg(all(target_os = "linux", target_arch = "aarch64"))] + unsafe fn os_arch_activate(_os: &(), tls_end: usize, tls_len: usize) { + // Uses ABI page + let abi_ptr = tls_end - tls_len - 16; + unsafe { + core::ptr::write(abi_ptr as *mut usize, tls_end); + core::arch::asm!( + "msr tpidr_el0, {}", + in(reg) abi_ptr, + ); + } + } + #[cfg(target_os = "redox")] unsafe fn os_arch_activate( os: &OsSpecific,