From 15856aa5418e6ff7d69e9c8897d997317b4bf44b 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/4] cleanup: Also mark reserved fields as private Padding Some were already done, more were missing --- src/fuchsia/mod.rs | 4 ++-- src/new/apple/xnu/mach/i386/_structs.rs | 4 ++-- src/unix/aix/mod.rs | 14 ++++++------- src/unix/aix/powerpc64.rs | 6 +++--- 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/bsd/freebsdlike/dragonfly/mod.rs | 2 +- src/unix/bsd/freebsdlike/freebsd/mod.rs | 6 +++--- src/unix/haiku/x86_64.rs | 4 ++-- src/unix/hurd/mod.rs | 4 ++-- 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 +++--- src/unix/newlib/vita/mod.rs | 4 ++-- src/unix/nto/mod.rs | 8 ++++---- src/vxworks/mod.rs | 12 +++++------ 24 files changed, 65 insertions(+), 65 deletions(-) diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index d02f3f87ae5c5..36d7e06b68f0e 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -321,7 +321,7 @@ s! { pub struct sockaddr_vm { pub svm_family: sa_family_t, - pub svm_reserved1: c_ushort, + svm_reserved1: Padding, pub svm_port: crate::in_port_t, pub svm_cid: c_uint, pub svm_zero: [u8; 4], @@ -890,7 +890,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 sockaddr_un { 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/aix/mod.rs b/src/unix/aix/mod.rs index 775061bdbd878..2aab83114ffbc 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -317,7 +317,7 @@ s! { pub struct xutsname { pub nid: c_uint, - pub reserved: c_int, + reserved: Padding, pub longnid: c_ulonglong, } @@ -368,7 +368,7 @@ s! { pub struct sched_param { pub sched_priority: c_int, pub sched_policy: c_int, - pub sched_reserved: [c_int; 6], + sched_reserved: Padding<[c_int; 6]>, } pub struct stack_t { @@ -465,8 +465,8 @@ s! { pub shm_extshm: c_int, pub shm_pagesize: crate::int64_t, pub shm_lba: crate::uint64_t, - pub shm_reserved0: crate::int64_t, - pub shm_reserved1: crate::int64_t, + shm_reserved0: Padding, + shm_reserved1: Padding, } pub struct stat64 { @@ -488,7 +488,7 @@ s! { pub st_vfs: c_uint, pub st_type: c_uint, pub st_gen: c_uint, - pub st_reserved: [c_uint; 10], + st_reserved: Padding<[c_uint; 10]>, pub st_size: off64_t, } @@ -508,7 +508,7 @@ s! { pub cgid: crate::gid_t, pub mode: mode_t, pub seq: c_ushort, - pub __reserved: c_ushort, + __reserved: Padding, pub key: key_t, } @@ -552,7 +552,7 @@ s! { pub events: c_short, pub fd: c_int, pub u: __poll_ctl_ext_u, - pub reserved64: [u64; 6], + reserved64: Padding<[u64; 6]>, } } diff --git a/src/unix/aix/powerpc64.rs b/src/unix/aix/powerpc64.rs index a936ddb7e2f99..c6b24964ef200 100644 --- a/src/unix/aix/powerpc64.rs +++ b/src/unix/aix/powerpc64.rs @@ -77,7 +77,7 @@ s! { pub st_vfs: c_uint, pub st_type: c_uint, pub st_gen: c_uint, - pub st_reserved: [c_uint; 9], + st_reserved: Padding<[c_uint; 9]>, pub st_padto_ll: c_uint, pub st_size: off_t, } @@ -117,7 +117,7 @@ s! { pub aio_word2: c_int, pub aio_fp: c_int, pub aio_handle: *mut aiocb, - pub aio_reserved: [c_uint; 2], + aio_reserved: Padding<[c_uint; 2]>, pub aio_sigev_tid: c_long, } @@ -191,7 +191,7 @@ s! { pub __ukeys: [c_uint; 2], pub __vsx: crate::__vsx_context_t, pub __tm: crate::__tm_context_t, - pub __reserved: [c_char; 1860], + __reserved: Padding<[c_char; 1860]>, pub __extctx_magic: c_int, } 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 7b084251d3b8e..119d00f1e8315 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/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index 2e3d333f7a4de..e1b8ea2a9e97d 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -101,7 +101,7 @@ s! { pub time_low: u32, pub time_mid: u16, pub time_hi_and_version: u16, - pub clock_seq_hi_and_reserved: u8, + clock_seq_hi_and_reserved: Padding, pub clock_seq_low: u8, pub node: [u8; 6], } diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 136a29e6b4194..a83df4c4fb646 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -361,7 +361,7 @@ s! { pub time_low: u32, pub time_mid: u16, pub time_hi_and_version: u16, - pub clock_seq_hi_and_reserved: u8, + clock_seq_hi_and_reserved: Padding, pub clock_seq_low: u8, pub node: [u8; _UUID_NODE_LEN], } @@ -488,8 +488,8 @@ s! { pub ksw_used: u_int, pub ksw_total: u_int, pub ksw_flags: c_int, - pub ksw_reserved1: u_int, - pub ksw_reserved2: u_int, + ksw_reserved1: Padding, + ksw_reserved2: Padding, } pub struct nlist { diff --git a/src/unix/haiku/x86_64.rs b/src/unix/haiku/x86_64.rs index 538ae30d438bf..4a6921d8d711d 100644 --- a/src/unix/haiku/x86_64.rs +++ b/src/unix/haiku/x86_64.rs @@ -12,13 +12,13 @@ s! { pub mscsr_mask: c_uint, pub _fpreg: [[c_uchar; 8]; 16], pub _xmm: [[c_uchar; 16]; 16], - pub _reserved_416_511: [c_uchar; 96], + _reserved_416_511: Padding<[c_uchar; 96]>, } pub struct xstate_hdr { pub bv: c_ulong, pub xcomp_bv: c_ulong, - pub _reserved: [c_uchar; 48], + _reserved: Padding<[c_uchar; 48]>, } pub struct savefpu { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 3f2e3dd65b7f2..e024c9ac463c8 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -634,8 +634,8 @@ s! { pub __shpid: c_int, pub __type: c_int, pub __flags: c_int, - pub __reserved1: c_uint, - pub __reserved2: c_uint, + __reserved1: Padding, + __reserved2: Padding, } pub struct __pthread_condattr { diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 040349f8a6911..6616d4f1ffa62 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -194,7 +194,7 @@ s! { pub struct genlmsghdr { pub cmd: u8, pub version: u8, - pub reserved: u16, + reserved: Padding, } pub struct nlmsghdr { @@ -271,7 +271,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 59afc245eec54..471f295fd8b2c 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -357,7 +357,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 2025c315bc1ea..312f0b1baae8e 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -136,10 +136,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 { @@ -155,7 +155,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 f41f61de62bcf..6c1621da153c6 100644 --- a/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs @@ -75,7 +75,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 b987f8358b365..29ef3b5e41f50 100644 --- a/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/riscv64/mod.rs @@ -123,7 +123,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 5ad3c6aeb1d80..9f19af7649506 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -119,7 +119,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, @@ -261,7 +261,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, } @@ -413,7 +413,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 { diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 2a456f47363d9..60b21a7e6adad 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -52,9 +52,9 @@ s! { pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - pub __ss_pad1: [u8; 2], + __ss_pad1: Padding<[u8; 2]>, pub __ss_align: i64, - pub __ss_pad2: [u8; 116], + __ss_pad2: Padding<[u8; 116]>, } pub struct sched_param { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 60202cddd7b9a..dbedd812b0a3b 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -80,7 +80,7 @@ s! { pub struct dirent_extra { pub d_datalen: u16, pub d_type: u16, - pub d_reserved: u32, + d_reserved: Padding, } pub struct stat { @@ -182,14 +182,14 @@ s! { pub struct sched_param { pub sched_priority: c_int, pub sched_curpriority: c_int, - pub reserved: [c_int; 10], + reserved: Padding<[c_int; 10]>, } #[repr(align(8))] pub struct __sched_param { pub __sched_priority: c_int, pub __sched_curpriority: c_int, - pub reserved: [c_int; 10], + reserved: Padding<[c_int; 10]>, } pub struct Dl_info { @@ -236,7 +236,7 @@ s! { pub _Yes: *mut c_char, pub _Nostr: *mut c_char, pub _Yesstr: *mut c_char, - pub _Reserved: [*mut c_char; 8], + _Reserved: Padding<[*mut c_char; 8]>, } // Does not exist in io-sock diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index ad1b0f9d09815..620e25cf69f42 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -234,10 +234,10 @@ s! { pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, pub st_attrib: c_uchar, - pub st_reserved1: c_int, - pub st_reserved2: c_int, - pub st_reserved3: c_int, - pub st_reserved4: c_int, + st_reserved1: Padding, + st_reserved2: Padding, + st_reserved3: Padding, + st_reserved4: Padding, } //b_struct__Timespec.h @@ -587,9 +587,9 @@ s_no_extra_traits! { pub struct sockaddr_storage { pub ss_len: c_uchar, pub ss_family: crate::sa_family_t, - pub __ss_pad1: [c_char; _SS_PAD1SIZE], + __ss_pad1: Padding<[c_char; _SS_PAD1SIZE]>, pub __ss_align: i32, - pub __ss_pad2: [c_char; _SS_PAD2SIZE], + __ss_pad2: Padding<[c_char; _SS_PAD2SIZE]>, } pub union sa_u_t { From 1323bc327e4ab5a5a4dd572dc539ebad1eaa9c7c 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/4] cleanup: Also padding is padding! As previous commit, but tackle the *padding* fields --- src/unix/bsd/freebsdlike/dragonfly/mod.rs | 2 +- src/unix/cygwin/mod.rs | 4 ++-- src/unix/haiku/mod.rs | 2 +- src/unix/hurd/mod.rs | 2 +- src/unix/linux_like/linux/mod.rs | 6 +++--- src/unix/linux_like/linux/musl/mod.rs | 2 +- src/unix/newlib/arm/mod.rs | 2 +- src/unix/newlib/horizon/mod.rs | 2 +- src/unix/nto/mod.rs | 4 ++-- 9 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index e1b8ea2a9e97d..b8da8a5bb6cbc 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -140,7 +140,7 @@ s! { pub st_nlink: crate::nlink_t, pub st_dev: crate::dev_t, pub st_mode: crate::mode_t, - pub st_padding1: u16, + st_padding1: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 9d3a3b55cfeae..e190e18f4cd63 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -268,7 +268,7 @@ s! { pub struct _uc_fpxreg { pub significand: [u16; 4], pub exponent: u16, - pub padding: [u16; 3], + padding: Padding<[u16; 3]>, } pub struct _uc_xmmreg { @@ -286,7 +286,7 @@ s! { pub mxcr_mask: u32, pub st: [_uc_fpxreg; 8], pub xmm: [_uc_xmmreg; 16], - pub padding: [u32; 24], + padding: Padding<[u32; 24]>, } #[repr(align(16))] diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index c1259fe6e0c97..c5236ce3ee48e 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -371,7 +371,7 @@ s! { pub struct sem_t { pub type_: i32, pub named_sem_id: i32, // actually a union with unnamed_sem (i32) - pub padding: [i32; 2], + padding: Padding<[i32; 2]>, } pub struct ucred { diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index e024c9ac463c8..870973c5cbef0 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -285,7 +285,7 @@ s! { pub struct sockaddr_storage { pub ss_len: c_uchar, pub ss_family: sa_family_t, - pub __ss_padding: [c_char; 122usize], + __ss_padding: Padding<[c_char; 122usize]>, pub __ss_align: __uint32_t, } diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 3b3131a13bcad..e3c6a0bccba98 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -224,7 +224,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 { @@ -237,7 +237,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 { @@ -285,7 +285,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 9f19af7649506..80f11dd84f5c0 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -293,7 +293,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 { diff --git a/src/unix/newlib/arm/mod.rs b/src/unix/newlib/arm/mod.rs index 26f3d52436b84..9b5978fc538c3 100644 --- a/src/unix/newlib/arm/mod.rs +++ b/src/unix/newlib/arm/mod.rs @@ -26,7 +26,7 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - pub __ss_padding: [u8; 26], + __ss_padding: Padding<[u8; 26]>, } } diff --git a/src/unix/newlib/horizon/mod.rs b/src/unix/newlib/horizon/mod.rs index 3958e02734ada..c49384d8aea3c 100644 --- a/src/unix/newlib/horizon/mod.rs +++ b/src/unix/newlib/horizon/mod.rs @@ -35,7 +35,7 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - pub __ss_padding: [c_char; 26usize], + __ss_padding: Padding<[c_char; 26usize]>, } pub struct sockaddr_in { diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index dbedd812b0a3b..fcc8b3d987ce1 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -694,9 +694,9 @@ s! { pub struct sigevent { pub sigev_notify: c_int, - pub __padding1: c_int, + __padding1: Padding, pub sigev_signo: c_int, // union - pub __padding2: c_int, + __padding2: Padding, pub sigev_value: crate::sigval, __sigev_un2: usize, // union } From 866e6e9bff7bbce7828b3df9f3d32d06dd3a45c8 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/4] cleanup: Set unused fields as private Padding --- src/unix/aix/mod.rs | 2 +- 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/bsd/freebsdlike/dragonfly/mod.rs | 4 +- src/unix/bsd/netbsdlike/netbsd/mod.rs | 2 +- src/unix/hurd/mod.rs | 4 +- 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 +- 11 files changed, 49 insertions(+), 49 deletions(-) diff --git a/src/unix/aix/mod.rs b/src/unix/aix/mod.rs index 2aab83114ffbc..638ce53a03fa2 100644 --- a/src/unix/aix/mod.rs +++ b/src/unix/aix/mod.rs @@ -443,7 +443,7 @@ s! { pub re_esub: [*mut c_void; 24], pub re_map: *mut c_uchar, pub __maxsub: c_int, - pub __unused: [*mut c_void; 34], + __unused: Padding<[*mut c_void; 34]>, } pub struct rlimit64 { 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 119d00f1e8315..ba99aa3166338 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/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index b8da8a5bb6cbc..0283bd4afb4a9 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -417,14 +417,14 @@ s! { pub ut_line: [c_char; 32], pub ut_host: [c_char; 256], - pub ut_unused: [u8; 16], + ut_unused: Padding<[u8; 16]>, pub ut_session: u16, pub ut_type: u16, pub ut_pid: crate::pid_t, ut_exit: exit_status, ut_ss: crate::sockaddr_storage, pub ut_tv: crate::timeval, - pub ut_unused2: [u8; 16], + ut_unused2: Padding<[u8; 16]>, } pub struct lastlogx { diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index f04997cf5aea7..e3a045369aed6 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -353,7 +353,7 @@ s! { } pub struct uucred { - pub cr_unused: c_ushort, + cr_unused: Padding, pub cr_uid: crate::uid_t, pub cr_gid: crate::gid_t, pub cr_ngroups: c_short, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 870973c5cbef0..388f7e8c78551 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -3330,8 +3330,8 @@ pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { __shpid: 0, __type: PTHREAD_MUTEX_TIMED as c_int, __flags: 0, - __reserved1: 0, - __reserved2: 0, + __reserved1: Padding::uninit(), + __reserved2: Padding::uninit(), }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { __lock: __PTHREAD_SPIN_LOCK_INITIALIZER, 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 e3c6a0bccba98..0fd111bc81c47 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -659,7 +659,7 @@ s! { pub struct genlmsghdr { pub cmd: u8, pub version: u8, - pub reserved: u16, + reserved: Padding, } pub struct in6_pktinfo { @@ -702,7 +702,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, @@ -812,7 +812,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 { @@ -1190,7 +1190,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], From ba3218b3a1a3fa6e77c2564c3f4e4168482f2634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2025 22:54:13 +0100 Subject: [PATCH 4/4] cleanup: Mark the alignment fields to private We have some leftovers of alignment data that is exposed --- src/unix/hurd/mod.rs | 2 +- src/unix/newlib/vita/mod.rs | 2 +- src/vxworks/mod.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index 388f7e8c78551..c4324e3837b3c 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -286,7 +286,7 @@ s! { pub ss_len: c_uchar, pub ss_family: sa_family_t, __ss_padding: Padding<[c_char; 122usize]>, - pub __ss_align: __uint32_t, + __ss_align: __uint32_t, } pub struct sockaddr_at { diff --git a/src/unix/newlib/vita/mod.rs b/src/unix/newlib/vita/mod.rs index 60b21a7e6adad..0fdb11a9dad60 100644 --- a/src/unix/newlib/vita/mod.rs +++ b/src/unix/newlib/vita/mod.rs @@ -53,7 +53,7 @@ s! { pub ss_len: u8, pub ss_family: crate::sa_family_t, __ss_pad1: Padding<[u8; 2]>, - pub __ss_align: i64, + __ss_align: i64, __ss_pad2: Padding<[u8; 116]>, } diff --git a/src/vxworks/mod.rs b/src/vxworks/mod.rs index 620e25cf69f42..a504ba936a982 100644 --- a/src/vxworks/mod.rs +++ b/src/vxworks/mod.rs @@ -588,7 +588,7 @@ s_no_extra_traits! { pub ss_len: c_uchar, pub ss_family: crate::sa_family_t, __ss_pad1: Padding<[c_char; _SS_PAD1SIZE]>, - pub __ss_align: i32, + __ss_align: i32, __ss_pad2: Padding<[c_char; _SS_PAD2SIZE]>, }