From a6d12264e8cd5e90b944f81b340e94e3f3a68d91 Mon Sep 17 00:00:00 2001 From: John Starks Date: Thu, 6 Nov 2025 05:52:29 +0000 Subject: [PATCH] linux/aarch64: make mcontext_t.__reserved pub The `mcontext_t.__reserved` field is documented to contain extra context, such as FP state and the ESR register. This field is 16-byte aligned, so for simplicity expose it as an array of `u128` elements (similar to how `musl` defines it as an array of `long double`s in C). --- src/unix/linux_like/android/b64/aarch64/mod.rs | 3 +-- src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs | 3 +-- src/unix/linux_like/linux/musl/b64/aarch64/mod.rs | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/unix/linux_like/android/b64/aarch64/mod.rs b/src/unix/linux_like/android/b64/aarch64/mod.rs index 3c6131089ee89..f9a4c4814eb98 100644 --- a/src/unix/linux_like/android/b64/aarch64/mod.rs +++ b/src/unix/linux_like/android/b64/aarch64/mod.rs @@ -67,14 +67,13 @@ s! { pub uc_mcontext: mcontext_t, } - #[repr(align(16))] pub struct mcontext_t { pub fault_address: c_ulonglong, pub regs: [c_ulonglong; 31], pub sp: c_ulonglong, pub pc: c_ulonglong, pub pstate: c_ulonglong, - __reserved: [u64; 512], + pub __reserved: [u128; 256], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs index b5af0e8ec9548..316d68d85b609 100644 --- a/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/aarch64/mod.rs @@ -212,14 +212,13 @@ s! { pub uc_mcontext: mcontext_t, } - #[repr(align(16))] pub struct mcontext_t { pub fault_address: c_ulonglong, pub regs: [c_ulonglong; 31], pub sp: c_ulonglong, pub pc: c_ulonglong, pub pstate: c_ulonglong, - __reserved: [u64; 512], + pub __reserved: [u128; 256], } pub struct user_fpsimd_struct { diff --git a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs index 087e39001e84f..78e91560019d4 100644 --- a/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/aarch64/mod.rs @@ -96,14 +96,13 @@ s! { pub uc_mcontext: mcontext_t, } - #[repr(align(16))] pub struct mcontext_t { pub fault_address: c_ulong, pub regs: [c_ulong; 31], pub sp: c_ulong, pub pc: c_ulong, pub pstate: c_ulong, - __reserved: [u64; 512], + pub __reserved: [u128; 256], } #[repr(align(8))]