From 294c55d0dfa5e5784729548f9764b26e608c18ff Mon Sep 17 00:00:00 2001 From: Zejun Zhao Date: Sun, 28 Sep 2025 02:01:19 +0800 Subject: [PATCH] Fix `semid_ds`'s layout on non-x86_64 platforms --- kernel/src/ipc/semaphore/system_v/sem_set.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/kernel/src/ipc/semaphore/system_v/sem_set.rs b/kernel/src/ipc/semaphore/system_v/sem_set.rs index ceecc6321..fcaac32a5 100644 --- a/kernel/src/ipc/semaphore/system_v/sem_set.rs +++ b/kernel/src/ipc/semaphore/system_v/sem_set.rs @@ -67,14 +67,18 @@ pub struct IpcPerm { _unused2: u64, } -// https://github.com/torvalds/linux/blob/master/arch/x86/include/uapi/asm/sembuf.h +// In Linux, most popular 64-bit architectures except x86_64 adopt the same +// layout of `semid_ds`. +// Reference: . #[repr(C)] #[derive(Debug, Copy, Clone, Default, Pod)] pub struct SemidDs { sem_perm: IpcPerm, sem_otime: u64, + #[cfg(target_arch = "x86_64")] _unused1: u64, sem_ctime: u64, + #[cfg(target_arch = "x86_64")] _unused2: u64, sem_nsems: u64, _unused3: u64,