From 9bb34923263366cab49626e28cf81bc577557f17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 23:26:11 +0100 Subject: [PATCH 1/3] cleanup: Also mark reserved fields as private Padding Some were already done, more were missing --- src/new/apple/xnu/mach/i386/_structs.rs | 4 ++-- src/unix/bsd/apple/b32/mod.rs | 4 ++-- src/unix/bsd/apple/b64/mod.rs | 4 ++-- src/unix/bsd/apple/mod.rs | 20 +++++++++---------- src/unix/linux_like/android/mod.rs | 4 ++-- src/unix/linux_like/emscripten/mod.rs | 2 +- .../linux_like/linux/gnu/b32/riscv32/mod.rs | 2 +- .../linux/gnu/b64/loongarch64/mod.rs | 2 +- .../linux_like/linux/gnu/b64/powerpc64/mod.rs | 2 +- .../linux_like/linux/gnu/b64/riscv64/mod.rs | 2 +- src/unix/linux_like/linux/gnu/mod.rs | 10 +++++----- .../linux/musl/b64/loongarch64/mod.rs | 2 +- .../linux_like/linux/musl/b64/riscv64/mod.rs | 2 +- src/unix/linux_like/linux/musl/mod.rs | 6 +++--- 14 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/new/apple/xnu/mach/i386/_structs.rs b/src/new/apple/xnu/mach/i386/_structs.rs index 15822f7710de8..cde6fc7fa5b54 100644 --- a/src/new/apple/xnu/mach/i386/_structs.rs +++ b/src/new/apple/xnu/mach/i386/_structs.rs @@ -46,7 +46,7 @@ s! { } pub struct __darwin_x86_float_state64 { - pub __fpu_reserved: [c_int; 2], + __fpu_reserved: Padding<[c_int; 2]>, __fpu_fcw: c_short, __fpu_fsw: c_short, pub __fpu_ftw: u8, @@ -87,6 +87,6 @@ s! { // FIXME(apple): this field is actually [u8; 96], but defining it with a bigger type allows // us to auto-implement traits for it since the length of the array is less than 32 __fpu_rsrv4: [u32; 24], - pub __fpu_reserved1: c_int, + __fpu_reserved1: Padding, } } diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index ab0c94ef4c2c2..de7ec026299b1 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -33,8 +33,8 @@ s! { pub ifi_lastchange: crate::timeval, pub ifi_unused2: u32, pub ifi_hwassist: u32, - pub ifi_reserved1: u32, - pub ifi_reserved2: u32, + ifi_reserved1: Padding, + ifi_reserved2: Padding, } pub struct bpf_hdr { diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 4ef2799e8c5fb..022747686e562 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -36,8 +36,8 @@ s! { pub ifi_lastchange: timeval32, pub ifi_unused2: u32, pub ifi_hwassist: u32, - pub ifi_reserved1: u32, - pub ifi_reserved2: u32, + ifi_reserved1: Padding, + ifi_reserved2: Padding, } pub struct bpf_hdr { diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index ec1df99ca1d9f..750ee38a51962 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -333,10 +333,10 @@ s! { } pub struct fpunchhole_t { - pub fp_flags: c_uint, /* unused */ - pub reserved: c_uint, /* (to maintain 8-byte alignment) */ - pub fp_offset: off_t, /* IN: start of the region */ - pub fp_length: off_t, /* IN: size of the region */ + pub fp_flags: c_uint, /* unused */ + reserved: Padding, /* (to maintain 8-byte alignment) */ + pub fp_offset: off_t, /* IN: start of the region */ + pub fp_length: off_t, /* IN: size of the region */ } pub struct ftrimactivefile_t { @@ -346,7 +346,7 @@ s! { pub struct fspecread_t { pub fsr_flags: c_uint, - pub reserved: c_uint, + reserved: Padding, pub fsr_offset: off_t, pub fsr_length: off_t, } @@ -485,7 +485,7 @@ s! { pub rtm_addrs: c_int, pub rtm_refcnt: i32, pub rtm_parentflags: c_int, - pub rtm_reserved: c_int, + rtm_reserved: Padding, pub rtm_use: c_int, pub rtm_inits: u32, pub rtm_rmx: rt_metrics, @@ -669,7 +669,7 @@ s! { pub ss_sysaddr: u16, pub sc_id: u32, pub sc_unit: u32, - pub sc_reserved: [u32; 5], + sc_reserved: Padding<[u32; 5]>, } pub struct in_pktinfo { @@ -1015,7 +1015,7 @@ s! { pub struct attrlist { pub bitmapcount: c_ushort, - pub reserved: u16, + reserved: Padding, pub commonattr: attrgroup_t, pub volattr: attrgroup_t, pub dirattr: attrgroup_t, @@ -1285,7 +1285,7 @@ s! { pub f_mntonname: [c_char; 1024], pub f_mntfromname: [c_char; 1024], pub f_flags_ext: u32, - pub f_reserved: [u32; 7], + f_reserved: Padding<[u32; 7]>, } pub struct dirent { @@ -1484,7 +1484,7 @@ s! { pub struct sockaddr_vm { pub svm_len: c_uchar, pub svm_family: crate::sa_family_t, - pub svm_reserved1: c_ushort, + svm_reserved1: Padding, pub svm_port: c_uint, pub svm_cid: c_uint, } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index e39abe6b9ecb3..d24144be3bf9f 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -193,7 +193,7 @@ s! { pub struct genlmsghdr { pub cmd: u8, pub version: u8, - pub reserved: u16, + reserved: Padding, } pub struct nlmsghdr { @@ -270,7 +270,7 @@ s! { pub struct sockaddr_vm { pub svm_family: crate::sa_family_t, - pub svm_reserved1: c_ushort, + svm_reserved1: Padding, pub svm_port: c_uint, pub svm_cid: c_uint, pub svm_zero: [u8; 4], diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 711ed8f8b4c37..2bc92f20cc5a4 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -351,7 +351,7 @@ s! { pub totalhigh: c_ulong, pub freehigh: c_ulong, pub mem_unit: c_uint, - pub __reserved: [c_char; 256], + __reserved: Padding<[c_char; 256]>, } pub struct mq_attr { diff --git a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs index 5484a68bd1ec1..c01d0d5089e9d 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -234,7 +234,7 @@ s_no_extra_traits! { pub struct __riscv_mc_q_ext_state { pub __f: [c_ulonglong; 64], pub __fcsr: c_uint, - pub __glibc_reserved: [c_uint; 3], + __glibc_reserved: Padding<[c_uint; 3]>, } } diff --git a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs index 3f01da8c0b989..ef00995f18536 100644 --- a/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/loongarch64/mod.rs @@ -199,7 +199,7 @@ s! { pub orig_a0: u64, pub csr_era: u64, pub csr_badv: u64, - pub reserved: [u64; 10], + reserved: Padding<[u64; 10]>, } pub struct user_fp_struct { diff --git a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs index ee2cd21dec783..9a7d4bba163a8 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -254,7 +254,7 @@ s_no_extra_traits! { pub gp_regs: crate::gregset_t, pub fp_regs: crate::fpregset_t, pub v_regs: *mut vrregset_t, - pub vmx_reserve: [c_long; __NVRREG + __NVRREG + 1], + vmx_reserve: Padding<[c_long; __NVRREG + __NVRREG + 1]>, } #[repr(align(16))] diff --git a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs index 3438a510d3bf9..a8d4875c8e5e1 100644 --- a/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/riscv64/mod.rs @@ -284,7 +284,7 @@ s_no_extra_traits! { pub struct __riscv_mc_q_ext_state { pub __f: [c_ulonglong; 64], pub __fcsr: c_uint, - pub __glibc_reserved: [c_uint; 3], + __glibc_reserved: Padding<[c_uint; 3]>, } } diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index e49de44ca941d..80c2d673f83d5 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -116,10 +116,10 @@ s! { pub maxerror: c_long, pub esterror: c_long, pub tai: c_long, - pub __glibc_reserved1: c_long, - pub __glibc_reserved2: c_long, - pub __glibc_reserved3: c_long, - pub __glibc_reserved4: c_long, + __glibc_reserved1: Padding, + __glibc_reserved2: Padding, + __glibc_reserved3: Padding, + __glibc_reserved4: Padding, } pub struct regex_t { @@ -135,7 +135,7 @@ s! { pub struct Elf64_Chdr { pub ch_type: crate::Elf64_Word, - pub ch_reserved: crate::Elf64_Word, + ch_reserved: Padding, pub ch_size: crate::Elf64_Xword, pub ch_addralign: crate::Elf64_Xword, } diff --git a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs index 29f7d49cc8320..f4a64b1b40c35 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -67,7 +67,7 @@ s! { pub orig_a0: u64, pub csr_era: u64, pub csr_badv: u64, - pub reserved: [u64; 10], + reserved: Padding<[u64; 10]>, } pub struct user_fp_struct { diff --git a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs index ba9bebd84cc73..adb9610f4aab3 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -115,7 +115,7 @@ s_no_extra_traits! { pub struct __riscv_mc_q_ext_state { pub __f: [c_ulonglong; 64], pub __fcsr: c_uint, - pub __glibc_reserved: [c_uint; 3], + __glibc_reserved: Padding<[c_uint; 3]>, } } diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index f16efaac7ecc7..d8cd809f31568 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -134,7 +134,7 @@ s! { pub struct fanotify_event_metadata { pub event_len: c_uint, pub vers: c_uchar, - pub reserved: c_uchar, + reserved: Padding, pub metadata_len: c_ushort, pub mask: c_ulonglong, pub fd: c_int, @@ -276,7 +276,7 @@ s! { pub struct Elf64_Chdr { pub ch_type: crate::Elf64_Word, - pub ch_reserved: crate::Elf64_Word, + ch_reserved: Padding, pub ch_size: crate::Elf64_Xword, pub ch_addralign: crate::Elf64_Xword, } @@ -428,7 +428,7 @@ s! { pub totalhigh: c_ulong, pub freehigh: c_ulong, pub mem_unit: c_uint, - pub __reserved: [c_char; 256], + __reserved: Padding<[c_char; 256]>, } pub struct utmpx { From 6a8120a94a27e4b1b0baef01b873e1f198dd29cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 23:01:54 +0100 Subject: [PATCH 2/3] cleanup: Also padding is padding! As previous commit, but tackle the *padding* fields --- src/unix/linux_like/linux/mod.rs | 6 +++--- src/unix/linux_like/linux/musl/mod.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 2a8dcd1339da9..2e023f15c659a 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -131,7 +131,7 @@ s! { pub tp_rxhash: __u32, pub tp_vlan_tci: __u32, pub tp_vlan_tpid: __u16, - pub tp_padding: __u16, + tp_padding: Padding<__u16>, } pub struct tpacket2_hdr { @@ -144,7 +144,7 @@ s! { pub tp_nsec: __u32, pub tp_vlan_tci: __u16, pub tp_vlan_tpid: __u16, - pub tp_padding: [__u8; 4], + tp_padding: Padding<[__u8; 4]>, } pub struct tpacket_req { @@ -192,7 +192,7 @@ s! { pub tp_mac: __u16, pub tp_net: __u16, pub hv1: crate::tpacket_hdr_variant1, - pub tp_padding: [__u8; 8], + tp_padding: Padding<[__u8; 8]>, } pub struct tpacket_bd_ts { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index d8cd809f31568..6670304f69983 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -308,7 +308,7 @@ s! { pub errcnt: c_long, pub stbcnt: c_long, pub tai: c_int, - pub __padding: [c_int; 11], + __padding: Padding<[c_int; 11]>, } pub struct ntptimeval { From 54a5e0377e2adec76073c4dccc21fa419ad2265c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Wed, 3 Dec 2025 00:01:37 +0100 Subject: [PATCH 3/3] cleanup: Set unused fields as private Padding --- src/unix/bsd/apple/b32/mod.rs | 4 +- src/unix/bsd/apple/b64/mod.rs | 4 +- src/unix/bsd/apple/mod.rs | 2 +- src/unix/linux_like/linux/gnu/b32/mod.rs | 44 +++++++++---------- src/unix/linux_like/linux/gnu/b64/mod.rs | 22 +++++----- src/unix/linux_like/linux/mod.rs | 8 ++-- .../linux/uclibc/mips/mips32/mod.rs | 2 +- 7 files changed, 43 insertions(+), 43 deletions(-) diff --git a/src/unix/bsd/apple/b32/mod.rs b/src/unix/bsd/apple/b32/mod.rs index de7ec026299b1..084382803901e 100644 --- a/src/unix/bsd/apple/b32/mod.rs +++ b/src/unix/bsd/apple/b32/mod.rs @@ -13,7 +13,7 @@ s! { pub ifi_hdrlen: c_uchar, pub ifi_recvquota: c_uchar, pub ifi_xmitquota: c_uchar, - pub ifi_unused1: c_uchar, + ifi_unused1: Padding, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_baudrate: u32, @@ -31,7 +31,7 @@ s! { pub ifi_recvtiming: u32, pub ifi_xmittiming: u32, pub ifi_lastchange: crate::timeval, - pub ifi_unused2: u32, + ifi_unused2: Padding, pub ifi_hwassist: u32, ifi_reserved1: Padding, ifi_reserved2: Padding, diff --git a/src/unix/bsd/apple/b64/mod.rs b/src/unix/bsd/apple/b64/mod.rs index 022747686e562..1a0c4dcf33fa1 100644 --- a/src/unix/bsd/apple/b64/mod.rs +++ b/src/unix/bsd/apple/b64/mod.rs @@ -16,7 +16,7 @@ s! { pub ifi_hdrlen: c_uchar, pub ifi_recvquota: c_uchar, pub ifi_xmitquota: c_uchar, - pub ifi_unused1: c_uchar, + ifi_unused1: Padding, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_baudrate: u32, @@ -34,7 +34,7 @@ s! { pub ifi_recvtiming: u32, pub ifi_xmittiming: u32, pub ifi_lastchange: timeval32, - pub ifi_unused2: u32, + ifi_unused2: Padding, pub ifi_hwassist: u32, ifi_reserved1: Padding, ifi_reserved2: Padding, diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 750ee38a51962..c27aa21080dd9 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1392,7 +1392,7 @@ s! { pub ifi_hdrlen: c_uchar, pub ifi_recvquota: c_uchar, pub ifi_xmitquota: c_uchar, - pub ifi_unused1: c_uchar, + ifi_unused1: Padding, pub ifi_mtu: u32, pub ifi_metric: u32, pub ifi_baudrate: u64, diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index d9aebbe0efda8..a04904f8c18dc 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -236,17 +236,17 @@ s! { pub errcnt: c_longlong, pub stbcnt: c_longlong, pub tai: c_int, - pub __unused1: i32, - pub __unused2: i32, - pub __unused3: i32, - pub __unused4: i32, - pub __unused5: i32, - pub __unused6: i32, - pub __unused7: i32, - pub __unused8: i32, - pub __unused9: i32, - pub __unused10: i32, - pub __unused11: i32, + __unused1: Padding, + __unused2: Padding, + __unused3: Padding, + __unused4: Padding, + __unused5: Padding, + __unused6: Padding, + __unused7: Padding, + __unused8: Padding, + __unused9: Padding, + __unused10: Padding, + __unused11: Padding, } #[cfg(not(gnu_time_bits64))] @@ -271,17 +271,17 @@ s! { pub errcnt: c_long, pub stbcnt: c_long, pub tai: c_int, - pub __unused1: i32, - pub __unused2: i32, - pub __unused3: i32, - pub __unused4: i32, - pub __unused5: i32, - pub __unused6: i32, - pub __unused7: i32, - pub __unused8: i32, - pub __unused9: i32, - pub __unused10: i32, - pub __unused11: i32, + __unused1: Padding, + __unused2: Padding, + __unused3: Padding, + __unused4: Padding, + __unused5: Padding, + __unused6: Padding, + __unused7: Padding, + __unused8: Padding, + __unused9: Padding, + __unused10: Padding, + __unused11: Padding, } } diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 3d442a6d8129d..33deb98610c84 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -164,17 +164,17 @@ s! { #[cfg(not(all(target_arch = "x86_64", target_pointer_width = "32")))] pub stbcnt: c_long, pub tai: c_int, - pub __unused1: i32, - pub __unused2: i32, - pub __unused3: i32, - pub __unused4: i32, - pub __unused5: i32, - pub __unused6: i32, - pub __unused7: i32, - pub __unused8: i32, - pub __unused9: i32, - pub __unused10: i32, - pub __unused11: i32, + __unused1: Padding, + __unused2: Padding, + __unused3: Padding, + __unused4: Padding, + __unused5: Padding, + __unused6: Padding, + __unused7: Padding, + __unused8: Padding, + __unused9: Padding, + __unused10: Padding, + __unused11: Padding, } } diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 2e023f15c659a..11f0093ee5658 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -390,7 +390,7 @@ s! { pub struct genlmsghdr { pub cmd: u8, pub version: u8, - pub reserved: u16, + reserved: Padding, } pub struct inotify_event { @@ -419,7 +419,7 @@ s! { pub struct sockaddr_vm { pub svm_family: crate::sa_family_t, - pub svm_reserved1: c_ushort, + svm_reserved1: Padding, pub svm_port: c_uint, pub svm_cid: c_uint, pub svm_flags: u8, @@ -490,7 +490,7 @@ s! { pub struct ptp_clock_time { pub sec: crate::__s64, pub nsec: __u32, - pub reserved: __u32, + reserved: Padding<__u32>, } pub struct ptp_extts_request { @@ -869,7 +869,7 @@ s! { pub struct fanotify_event_metadata { pub event_len: __u32, pub vers: __u8, - pub reserved: __u8, + reserved: Padding<__u8>, pub metadata_len: __u16, pub mask: __u64, pub fd: c_int, diff --git a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs index 93ed7ab213335..88ea67ad1ea64 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -74,7 +74,7 @@ s! { pub f_ffree: crate::fsfilcnt64_t, pub f_favail: crate::fsfilcnt64_t, pub f_fsid: c_ulong, - pub __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, pub __f_spare: [c_int; 6],