diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs index 5c2a4ba56a70b..d02f3f87ae5c5 100644 --- a/src/fuchsia/mod.rs +++ b/src/fuchsia/mod.rs @@ -478,7 +478,7 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: c_ulong, #[cfg(all(target_pointer_width = "32", not(target_arch = "x86_64")))] - __f_unused: c_int, + __f_unused: Padding, #[cfg(target_endian = "big")] pub f_fsid: c_ulong, pub f_flag: c_ulong, @@ -520,7 +520,7 @@ s! { pub ssi_syscall: i32, pub ssi_call_addr: u64, pub ssi_arch: u32, - _pad: [u8; 28], + _pad: Padding<[u8; 28]>, } pub struct itimerspec { diff --git a/src/new/musl/sys/socket.rs b/src/new/musl/sys/socket.rs index f7105c9bbca16..24731914641cc 100644 --- a/src/new/musl/sys/socket.rs +++ b/src/new/musl/sys/socket.rs @@ -10,16 +10,16 @@ s! { pub msg_namelen: crate::socklen_t, pub msg_iov: *mut crate::iovec, #[cfg(all(target_pointer_width = "64", target_endian = "big"))] - __pad1: c_int, + __pad1: Padding, pub msg_iovlen: c_int, #[cfg(all(target_pointer_width = "64", target_endian = "little"))] - __pad1: c_int, + __pad1: Padding, pub msg_control: *mut c_void, #[cfg(all(target_pointer_width = "64", target_endian = "big"))] - __pad2: c_int, + __pad2: Padding, pub msg_controllen: crate::socklen_t, #[cfg(all(target_pointer_width = "64", target_endian = "little"))] - __pad2: c_int, + __pad2: Padding, pub msg_flags: c_int, } diff --git a/src/new/netbsd/utmpx_.rs b/src/new/netbsd/utmpx_.rs index 813c8fb69712e..7b07b0c126643 100644 --- a/src/new/netbsd/utmpx_.rs +++ b/src/new/netbsd/utmpx_.rs @@ -46,7 +46,7 @@ s! { pub ut_exit: __exit_status, // FIXME(netbsd): when anonymous struct are supported pub ut_ss: crate::sockaddr_storage, pub ut_tv: crate::timeval, - ut_pad: [u8; _UTX_PADSIZE], + ut_pad: Padding<[u8; _UTX_PADSIZE]>, } pub struct __exit_status { diff --git a/src/types.rs b/src/types.rs index 4a7514564b22b..2d6e83f67fcde 100644 --- a/src/types.rs +++ b/src/types.rs @@ -22,6 +22,18 @@ impl Default for Padding { } } +impl Padding { + /// Const constructor for uninitialized padding in const contexts. + // FIXME: Change this into zeroed() and use MaybeUninit::zeroed() + // when we depend on rustc 1.75.0. + #[allow(unused)] + pub(crate) const fn uninit() -> Self { + // We can still safely use uninit here, since padding are is something + // that can are not meant to be read or written anyways. + Self(MaybeUninit::uninit()) + } +} + impl fmt::Debug for Padding { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { // Taken frmo `MaybeUninit`'s debug implementation diff --git a/src/unix/bsd/apple/b64/x86_64/mod.rs b/src/unix/bsd/apple/b64/x86_64/mod.rs index 2b22f489b9c6b..dac8c9e3d336d 100644 --- a/src/unix/bsd/apple/b64/x86_64/mod.rs +++ b/src/unix/bsd/apple/b64/x86_64/mod.rs @@ -10,8 +10,8 @@ s! { // FIXME(1.0): This should not implement `PartialEq` #[allow(unpredictable_function_pointer_comparisons)] pub struct malloc_zone_t { - _reserved1: *mut c_void, - _reserved2: *mut c_void, + _reserved1: Padding<*mut c_void>, + _reserved2: Padding<*mut c_void>, pub size: Option size_t>, pub malloc: diff --git a/src/unix/bsd/apple/mod.rs b/src/unix/bsd/apple/mod.rs index 4501cb40b0268..7b084251d3b8e 100644 --- a/src/unix/bsd/apple/mod.rs +++ b/src/unix/bsd/apple/mod.rs @@ -1313,7 +1313,7 @@ s! { pub ut_type: c_short, pub ut_tv: crate::timeval, pub ut_host: [c_char; _UTX_HOSTSIZE], - ut_pad: [u32; 16], + ut_pad: Padding<[u32; 16]>, } pub struct sigevent { diff --git a/src/unix/bsd/freebsdlike/dragonfly/mod.rs b/src/unix/bsd/freebsdlike/dragonfly/mod.rs index de6ba65a14d44..2e3d333f7a4de 100644 --- a/src/unix/bsd/freebsdlike/dragonfly/mod.rs +++ b/src/unix/bsd/freebsdlike/dragonfly/mod.rs @@ -215,7 +215,7 @@ s! { pub cr_uid: crate::uid_t, pub cr_ngroups: c_short, pub cr_groups: [crate::gid_t; 16], - __cr_unused1: *mut c_void, + __cr_unused1: Padding<*mut c_void>, } pub struct stack_t { @@ -260,8 +260,8 @@ s! { pub cp_sys: u64, pub cp_intr: u64, pub cp_idel: u64, - cp_unused01: u64, - cp_unused02: u64, + cp_unused01: Padding, + cp_unused02: Padding, pub cp_sample_pc: u64, pub cp_sample_sp: u64, pub cp_msg: [c_char; 32], @@ -382,8 +382,8 @@ s! { pub vm_daddr: *mut c_char, pub vm_maxsaddr: *mut c_char, pub vm_minsaddr: *mut c_char, - _unused1: c_int, - _unused2: c_int, + _unused1: Padding, + _unused2: Padding, pub vm_pagesupply: c_int, pub vm_holdcnt: c_uint, pub vm_refcnt: c_uint, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs index dc63bdd5e322d..418c1b34f02b7 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd12/mod.rs @@ -226,10 +226,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs index 8c33d611b736d..3367a1e2be418 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd13/mod.rs @@ -239,10 +239,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs index c85f242754ce1..61fa838b5b20e 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd14/mod.rs @@ -240,10 +240,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs index 5e939543c65b5..ca2dcd5c8f4e8 100644 --- a/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/freebsd15/mod.rs @@ -242,10 +242,10 @@ s! { pub st_ino: crate::ino_t, pub st_nlink: crate::nlink_t, pub st_mode: crate::mode_t, - st_padding0: i16, + st_padding0: Padding, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, - st_padding1: i32, + st_padding1: Padding, pub st_rdev: crate::dev_t, #[cfg(target_arch = "x86")] st_atim_ext: i32, diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs index 6827ab069bf5d..136a29e6b4194 100644 --- a/src/unix/bsd/freebsdlike/freebsd/mod.rs +++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs @@ -346,7 +346,7 @@ s! { m_ceilings: [u32; 2], m_rb_link: crate::uintptr_t, #[cfg(target_pointer_width = "32")] - m_pad: u32, + m_pad: Padding, m_spare: [u32; 2], } @@ -1616,7 +1616,7 @@ s_no_extra_traits! { } pub union __c_anonymous_cr_pid { - __cr_unused: *mut c_void, + __cr_unused: Padding<*mut c_void>, pub cr_pid: crate::pid_t, } @@ -1684,7 +1684,7 @@ s_no_extra_traits! { } pub struct in_addr_4in6 { - _ia46_pad32: [u32; 3], + _ia46_pad32: Padding<[u32; 3]>, pub ia46_addr4: crate::in_addr, } diff --git a/src/unix/bsd/netbsdlike/netbsd/mod.rs b/src/unix/bsd/netbsdlike/netbsd/mod.rs index c8fb9c582a57e..f04997cf5aea7 100644 --- a/src/unix/bsd/netbsdlike/netbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/netbsd/mod.rs @@ -230,16 +230,16 @@ s! { target_arch = "x86", target_arch = "x86_64" ))] - ptm_pad1: [u8; 3], + ptm_pad1: Padding<[u8; 3]>, // actually a union with a non-unused, 0-initialized field - ptm_unused: __pthread_spin_t, + ptm_unused: Padding<__pthread_spin_t>, #[cfg(any( target_arch = "sparc", target_arch = "sparc64", target_arch = "x86", target_arch = "x86_64" ))] - ptm_pad2: [u8; 3], + ptm_pad2: Padding<[u8; 3]>, ptm_owner: crate::pthread_t, ptm_waiters: *mut u8, ptm_recursed: c_uint, @@ -1281,9 +1281,9 @@ cfg_if! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, - ptm_pad1: [0; 3], - ptm_unused: 0, - ptm_pad2: [0; 3], + ptm_pad1: Padding::uninit(), + ptm_unused: Padding::uninit(), + ptm_pad2: Padding::uninit(), ptm_waiters: 0 as *mut _, ptm_owner: 0, ptm_recursed: 0, @@ -1293,7 +1293,7 @@ cfg_if! { pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { ptm_magic: 0x33330003, ptm_errorcheck: 0, - ptm_unused: 0, + ptm_unused: Padding::uninit(), ptm_waiters: 0 as *mut _, ptm_owner: 0, ptm_recursed: 0, diff --git a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs index e0d347fb5e6b8..13142ea0f9366 100644 --- a/src/unix/bsd/netbsdlike/openbsd/aarch64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/aarch64.rs @@ -4,7 +4,7 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - __sc_unused: c_int, + __sc_unused: Padding, pub sc_mask: c_int, pub sc_sp: c_ulong, pub sc_lr: c_ulong, diff --git a/src/unix/bsd/netbsdlike/openbsd/mod.rs b/src/unix/bsd/netbsdlike/openbsd/mod.rs index c9095a0aa66b3..769527b810fa2 100644 --- a/src/unix/bsd/netbsdlike/openbsd/mod.rs +++ b/src/unix/bsd/netbsdlike/openbsd/mod.rs @@ -616,16 +616,16 @@ s! { pub d_reclen: u16, pub d_type: u8, pub d_namlen: u8, - __d_padding: [u8; 4], + __d_padding: Padding<[u8; 4]>, pub d_name: [c_char; 256], } pub struct sockaddr_storage { pub ss_len: u8, pub ss_family: crate::sa_family_t, - __ss_pad1: [u8; 6], - __ss_pad2: i64, - __ss_pad3: [u8; 240], + __ss_pad1: Padding<[u8; 6]>, + __ss_pad2: Padding, + __ss_pad3: Padding<[u8; 240]>, } pub struct siginfo_t { @@ -634,9 +634,9 @@ s! { pub si_errno: c_int, pub si_addr: *mut c_char, #[cfg(target_pointer_width = "32")] - __pad: [u8; 112], + __pad: Padding<[u8; 112]>, #[cfg(target_pointer_width = "64")] - __pad: [u8; 108], + __pad: Padding<[u8; 108]>, } pub struct lastlog { diff --git a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs index 3545763d12c54..e0ecf2ac28b50 100644 --- a/src/unix/bsd/netbsdlike/openbsd/riscv64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/riscv64.rs @@ -4,7 +4,7 @@ pub type ucontext_t = sigcontext; s! { pub struct sigcontext { - __sc_unused: c_int, + __sc_unused: Padding, pub sc_mask: c_int, pub sc_ra: c_long, pub sc_sp: c_long, diff --git a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs index 4abe8a1a7c5ed..74889a743b9aa 100644 --- a/src/unix/bsd/netbsdlike/openbsd/x86_64.rs +++ b/src/unix/bsd/netbsdlike/openbsd/x86_64.rs @@ -32,7 +32,7 @@ s! { pub sc_rsp: c_long, pub sc_ss: c_long, pub sc_fpstate: *mut fxsave64, - __sc_unused: c_int, + __sc_unused: Padding, pub sc_mask: c_int, pub sc_cookie: c_long, } @@ -42,7 +42,7 @@ s! { pub fx_fcw: u16, pub fx_fsw: u16, pub fx_ftw: u8, - __fx_unused1: u8, + __fx_unused1: Padding, pub fx_fop: u16, pub fx_rip: u64, pub fx_rdp: u64, @@ -50,7 +50,7 @@ s! { pub fx_mxcsr_mask: u32, pub fx_st: [[u64; 2]; 8], pub fx_xmm: [[u64; 2]; 16], - __fx_unused3: [u8; 96], + __fx_unused3: Padding<[u8; 96]>, } } diff --git a/src/unix/cygwin/mod.rs b/src/unix/cygwin/mod.rs index 94c156c8f41ce..9d3a3b55cfeae 100644 --- a/src/unix/cygwin/mod.rs +++ b/src/unix/cygwin/mod.rs @@ -468,7 +468,7 @@ s! { __d_version: u32, pub d_ino: ino_t, pub d_type: c_uchar, - __d_unused1: [c_uchar; 3], + __d_unused1: Padding<[c_uchar; 3]>, __d_internal1: u32, pub d_name: [c_char; 256], } diff --git a/src/unix/haiku/mod.rs b/src/unix/haiku/mod.rs index 31f867f2264bd..c1259fe6e0c97 100644 --- a/src/unix/haiku/mod.rs +++ b/src/unix/haiku/mod.rs @@ -292,14 +292,14 @@ s! { pub struct pthread_mutex_t { flags: u32, lock: i32, - unused: i32, + unused: Padding, owner: i32, owner_count: i32, } pub struct pthread_cond_t { flags: u32, - unused: i32, + unused: Padding, mutex: *mut c_void, waiter_count: i32, lock: i32, @@ -495,7 +495,7 @@ s! { pub ut_user: [c_char; 32], pub ut_line: [c_char; 16], pub ut_host: [c_char; 128], - __ut_reserved: [c_char; 64], + __ut_reserved: Padding<[c_char; 64]>, } } @@ -1090,13 +1090,13 @@ pub const PTHREAD_STACK_MIN: size_t = 8192; pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { flags: 0, lock: 0, - unused: -42, + unused: Padding::uninit(), owner: -1, owner_count: 0, }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { flags: 0, - unused: -42, + unused: Padding::uninit(), mutex: 0 as *mut _, waiter_count: 0, lock: 0, diff --git a/src/unix/haiku/native.rs b/src/unix/haiku/native.rs index acf6b3486de79..99ceab8a7519b 100644 --- a/src/unix/haiku/native.rs +++ b/src/unix/haiku/native.rs @@ -422,10 +422,10 @@ s! { pub model: u32, pub family: u32, pub tpe: u32, - __reserved_0: u32, + __reserved_0: Padding, pub extended_model: u32, pub extended_family: u32, - __reserved_1: u32, + __reserved_1: Padding, pub brand_index: u32, pub clflush: u32, pub logical_cpus: u32, diff --git a/src/unix/hurd/mod.rs b/src/unix/hurd/mod.rs index d4f444f7b7f39..3f2e3dd65b7f2 100644 --- a/src/unix/hurd/mod.rs +++ b/src/unix/hurd/mod.rs @@ -596,7 +596,7 @@ s! { pub aio_offset: off_t, #[cfg(all(not(target_arch = "x86_64"), target_pointer_width = "32"))] __unused1: Padding<[c_char; 4]>, - __glibc_reserved: [c_char; 32], + __glibc_reserved: Padding<[c_char; 32]>, } pub struct mq_attr { @@ -708,7 +708,7 @@ s! { } pub struct _IO_FILE { - _unused: [u8; 0], + _unused: Padding<[u8; 0]>, } pub struct sched_param { @@ -1041,7 +1041,7 @@ s! { pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], - __glibc_reserved: [c_char; 20], + __glibc_reserved: Padding<[c_char; 20]>, } } diff --git a/src/unix/linux_like/android/b32/arm.rs b/src/unix/linux_like/android/b32/arm.rs index 1d2d34dfedc40..66375876e7760 100644 --- a/src/unix/linux_like/android/b32/arm.rs +++ b/src/unix/linux_like/android/b32/arm.rs @@ -32,7 +32,7 @@ s! { pub struct __c_anonymous_uc_sigmask_with_padding { pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, + __padding_rt_sigset: Padding, } pub struct ucontext_t { diff --git a/src/unix/linux_like/android/b32/mod.rs b/src/unix/linux_like/android/b32/mod.rs index 62c3c4c32a4b6..7927a2390ccf2 100644 --- a/src/unix/linux_like/android/b32/mod.rs +++ b/src/unix/linux_like/android/b32/mod.rs @@ -124,7 +124,7 @@ s! { pendingReaders: c_int, pendingWriters: c_int, attr: i32, - __reserved: [c_char; 12], + __reserved: Padding<[c_char; 12]>, } pub struct pthread_barrier_t { @@ -209,7 +209,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pendingReaders: 0, pendingWriters: 0, attr: 0, - __reserved: [0; 12], + __reserved: Padding::uninit(), }; pub const PTHREAD_STACK_MIN: size_t = 4096 * 2; pub const CPU_SETSIZE: size_t = 32; diff --git a/src/unix/linux_like/android/b32/x86/mod.rs b/src/unix/linux_like/android/b32/x86/mod.rs index 22a8766e88bb3..7266cf2c31363 100644 --- a/src/unix/linux_like/android/b32/x86/mod.rs +++ b/src/unix/linux_like/android/b32/x86/mod.rs @@ -31,7 +31,7 @@ s! { pub struct __c_anonymous_uc_sigmask_with_padding { pub uc_sigmask: crate::sigset_t, /* Android has a wrong (smaller) sigset_t on x86. */ - __padding_rt_sigset: u32, + __padding_rt_sigset: Padding, } pub struct ucontext_t { @@ -40,7 +40,7 @@ s! { pub uc_stack: crate::stack_t, pub uc_mcontext: mcontext_t, pub uc_sigmask__c_anonymous_union: __c_anonymous_uc_sigmask, - __padding_rt_sigset: u32, + __padding_rt_sigset: Padding, __fpregs_mem: _libc_fpstate, } } diff --git a/src/unix/linux_like/android/b64/mod.rs b/src/unix/linux_like/android/b64/mod.rs index 05ec19d85ad5e..9fc1819379e56 100644 --- a/src/unix/linux_like/android/b64/mod.rs +++ b/src/unix/linux_like/android/b64/mod.rs @@ -118,12 +118,12 @@ s! { pub struct pthread_mutex_t { value: c_int, - __reserved: [c_char; 36], + __reserved: Padding<[c_char; 36]>, } pub struct pthread_cond_t { value: c_int, - __reserved: [c_char; 44], + __reserved: Padding<[c_char; 44]>, } pub struct pthread_rwlock_t { @@ -132,7 +132,7 @@ s! { pendingReaders: c_int, pendingWriters: c_int, attr: i32, - __reserved: [c_char; 36], + __reserved: Padding<[c_char; 36]>, } pub struct sigset64_t { @@ -155,11 +155,11 @@ pub const RTLD_DEFAULT: *mut c_void = ptr::null_mut(); pub const PTHREAD_MUTEX_INITIALIZER: pthread_mutex_t = pthread_mutex_t { value: 0, - __reserved: [0; 36], + __reserved: Padding::uninit(), }; pub const PTHREAD_COND_INITIALIZER: pthread_cond_t = pthread_cond_t { value: 0, - __reserved: [0; 44], + __reserved: Padding::uninit(), }; pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { numLocks: 0, @@ -167,7 +167,7 @@ pub const PTHREAD_RWLOCK_INITIALIZER: pthread_rwlock_t = pthread_rwlock_t { pendingReaders: 0, pendingWriters: 0, attr: 0, - __reserved: [0; 36], + __reserved: Padding::uninit(), }; pub const PTHREAD_STACK_MIN: size_t = 4096 * 4; pub const CPU_SETSIZE: size_t = 1024; diff --git a/src/unix/linux_like/android/b64/x86_64/mod.rs b/src/unix/linux_like/android/b64/x86_64/mod.rs index 801235d13ec1b..0f3b74131449a 100644 --- a/src/unix/linux_like/android/b64/x86_64/mod.rs +++ b/src/unix/linux_like/android/b64/x86_64/mod.rs @@ -151,7 +151,7 @@ s! { pub mxcr_mask: c_uint, pub st_space: [c_uint; 32], pub xmm_space: [c_uint; 64], - padding: [c_uint; 24], + padding: Padding<[c_uint; 24]>, } } diff --git a/src/unix/linux_like/android/mod.rs b/src/unix/linux_like/android/mod.rs index 61bd8608287ef..040349f8a6911 100644 --- a/src/unix/linux_like/android/mod.rs +++ b/src/unix/linux_like/android/mod.rs @@ -158,7 +158,7 @@ s! { pub f_flag: c_ulong, pub f_namemax: c_ulong, #[cfg(target_pointer_width = "64")] - __f_reserved: [u32; 6], + __f_reserved: Padding<[u32; 6]>, } pub struct signalfd_siginfo { @@ -549,7 +549,7 @@ s! { pub ut_session: c_long, pub ut_tv: crate::timeval, pub ut_addr_v6: [i32; 4], - unused: [c_char; 20], + unused: Padding<[c_char; 20]>, } pub struct sockaddr_alg { diff --git a/src/unix/linux_like/emscripten/mod.rs b/src/unix/linux_like/emscripten/mod.rs index 6bb961520d55f..59afc245eec54 100644 --- a/src/unix/linux_like/emscripten/mod.rs +++ b/src/unix/linux_like/emscripten/mod.rs @@ -91,7 +91,7 @@ s! { pub f_ffree: crate::fsfilcnt_t, pub f_favail: crate::fsfilcnt_t, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -223,7 +223,7 @@ s! { pub struct stat { pub st_dev: crate::dev_t, #[cfg(emscripten_old_stat_abi)] - __st_dev_padding: c_int, + __st_dev_padding: Padding, #[cfg(emscripten_old_stat_abi)] __st_ino_truncated: c_long, pub st_mode: mode_t, @@ -232,7 +232,7 @@ s! { pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, #[cfg(emscripten_old_stat_abi)] - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs index dadaa7a8f6892..d05bccf3811ac 100644 --- a/src/unix/linux_like/linux/gnu/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/arm/mod.rs @@ -84,15 +84,15 @@ s! { pub st_atime: crate::time_t, pub st_atime_nsec: c_long, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, #[cfg(not(gnu_time_bits64))] pub st_ino: crate::ino64_t, } @@ -122,7 +122,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -151,20 +151,20 @@ s! { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs index 978b4398e9073..dc88c635f1168 100644 --- a/src/unix/linux_like/linux/gnu/b32/csky/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/csky/mod.rs @@ -109,7 +109,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -134,18 +134,18 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs index d2eb7ee3ec9b4..2d91f986b76a0 100644 --- a/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/m68k/mod.rs @@ -58,8 +58,8 @@ s! { pub mode: crate::mode_t, __seq: c_ushort, __pad1: Padding, - __glibc_reserved1: c_ulong, - __glibc_reserved2: c_ulong, + __glibc_reserved1: Padding, + __glibc_reserved2: Padding, } pub struct stat64 { @@ -109,7 +109,7 @@ s! { pub f_ffree: crate::fsblkcnt64_t, pub f_favail: crate::fsblkcnt64_t, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -119,33 +119,33 @@ s! { pub shm_perm: crate::ipc_perm, pub shm_segsz: size_t, pub shm_atime: crate::time_t, - __glibc_reserved1: c_long, + __glibc_reserved1: Padding, pub shm_dtime: crate::time_t, - __glibc_reserved2: c_long, + __glibc_reserved2: Padding, pub shm_ctime: crate::time_t, - __glibc_reserved3: c_long, + __glibc_reserved3: Padding, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __glibc_reserved5: c_ulong, - __glibc_reserved6: c_ulong, + __glibc_reserved5: Padding, + __glibc_reserved6: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, - __glibc_reserved1: c_uint, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, - __glibc_reserved2: c_uint, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, - __glibc_reserved3: c_uint, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { diff --git a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs index 99af57a4460c0..18bb1933925f0 100644 --- a/src/unix/linux_like/linux/gnu/b32/mips/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mips/mod.rs @@ -45,15 +45,15 @@ s! { pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] @@ -98,15 +98,15 @@ s! { pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] @@ -160,7 +160,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -218,27 +218,27 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_stime: crate::time_t, #[cfg(all(not(gnu_time_bits64), target_endian = "little"))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_rtime: crate::time_t, #[cfg(all(not(gnu_time_bits64), target_endian = "little"))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, #[cfg(all(not(gnu_time_bits64), target_endian = "big"))] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct flock { @@ -250,7 +250,7 @@ s! { pub l_sysid: c_long, pub l_pid: crate::pid_t, #[cfg(not(gnu_file_offset_bits64))] - __glibc_reserved0: [c_long; 4], + __glibc_reserved0: Padding<[c_long; 4]>, } } diff --git a/src/unix/linux_like/linux/gnu/b32/mod.rs b/src/unix/linux_like/linux/gnu/b32/mod.rs index 1855693dc6c7a..d9aebbe0efda8 100644 --- a/src/unix/linux_like/linux/gnu/b32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/mod.rs @@ -106,20 +106,20 @@ cfg_if! { pub st_atime: crate::time_t, pub st_atime_nsec: c_long, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_mtime: crate::time_t, pub st_mtime_nsec: c_long, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, #[cfg(not(gnu_file_offset_bits64))] - __glibc_reserved4: c_long, + __glibc_reserved4: Padding, #[cfg(not(gnu_file_offset_bits64))] - __glibc_reserved5: c_long, + __glibc_reserved5: Padding, #[cfg(all(not(gnu_time_bits64), gnu_file_offset_bits64))] pub st_ino: crate::ino_t, } @@ -138,7 +138,7 @@ s! { pub f_ffree: crate::fsfilcnt_t, pub f_favail: crate::fsfilcnt_t, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -207,8 +207,8 @@ s! { )) ))] __reserved2: Padding, - __glibc_reserved3: crate::__syscall_ulong_t, - __glibc_reserved4: crate::__syscall_ulong_t, + __glibc_reserved3: Padding, + __glibc_reserved4: Padding, } #[cfg(gnu_time_bits64)] diff --git a/src/unix/linux_like/linux/gnu/b32/powerpc.rs b/src/unix/linux_like/linux/gnu/b32/powerpc.rs index c84ee0c95cad5..b5d3631a6fcf2 100644 --- a/src/unix/linux_like/linux/gnu/b32/powerpc.rs +++ b/src/unix/linux_like/linux/gnu/b32/powerpc.rs @@ -58,8 +58,8 @@ s! { pub mode: crate::mode_t, __seq: u32, __pad1: Padding, - __glibc_reserved1: u64, - __glibc_reserved2: u64, + __glibc_reserved1: Padding, + __glibc_reserved2: Padding, } pub struct stat { @@ -79,20 +79,20 @@ s! { pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] - __glibc_reserved4: c_ulong, + __glibc_reserved4: Padding, #[cfg(not(gnu_time_bits64))] - __glibc_reserved5: c_ulong, + __glibc_reserved5: Padding, } pub struct stat64 { @@ -110,20 +110,20 @@ s! { pub st_blocks: crate::blkcnt64_t, pub st_atime: crate::time_t, #[cfg(gnu_time_bits64)] - _atime_pad: c_int, + _atime_pad: Padding, pub st_atime_nsec: c_long, pub st_mtime: crate::time_t, #[cfg(gnu_time_bits64)] - _mtime_pad: c_int, + _mtime_pad: Padding, pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, #[cfg(gnu_time_bits64)] - _ctime_pad: c_int, + _ctime_pad: Padding, pub st_ctime_nsec: c_long, #[cfg(not(gnu_time_bits64))] - __glibc_reserved4: c_ulong, + __glibc_reserved4: Padding, #[cfg(not(gnu_time_bits64))] - __glibc_reserved5: c_ulong, + __glibc_reserved5: Padding, } pub struct statfs64 { @@ -151,7 +151,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -162,43 +162,43 @@ s! { #[cfg(gnu_time_bits64)] pub shm_segsz: size_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_uint, + __glibc_reserved1: Padding, pub shm_atime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_uint, + __glibc_reserved2: Padding, pub shm_dtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_uint, + __glibc_reserved3: Padding, pub shm_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved4: c_uint, + __glibc_reserved4: Padding, #[cfg(not(gnu_time_bits64))] pub shm_segsz: size_t, pub shm_cpid: crate::pid_t, pub shm_lpid: crate::pid_t, pub shm_nattch: crate::shmatt_t, - __glibc_reserved5: c_ulong, - __glibc_reserved6: c_ulong, + __glibc_reserved5: Padding, + __glibc_reserved6: Padding, } pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_uint, + __glibc_reserved1: Padding, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_uint, + __glibc_reserved2: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_uint, + __glibc_reserved3: Padding, pub msg_ctime: crate::time_t, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { 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 8da10a3c543b6..5484a68bd1ec1 100644 --- a/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/riscv32/mod.rs @@ -19,8 +19,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct stat64 { diff --git a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs index 303d4a1135715..75fefcd9401a8 100644 --- a/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/sparc/mod.rs @@ -86,8 +86,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct stat64 { @@ -108,8 +108,8 @@ s! { pub st_mtime_nsec: c_long, pub st_ctime: crate::time_t, pub st_ctime_nsec: c_long, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct statfs64 { @@ -137,7 +137,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -195,8 +195,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } } diff --git a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs index 8c80598f84f41..97429dad64285 100644 --- a/src/unix/linux_like/linux/gnu/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/gnu/b32/x86/mod.rs @@ -196,7 +196,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], @@ -225,20 +225,20 @@ s! { pub msg_perm: crate::ipc_perm, pub msg_stime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_rtime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_ctime: crate::time_t, #[cfg(not(gnu_time_bits64))] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct siginfo_t { @@ -275,7 +275,7 @@ s! { __reserved: Padding, pub st_space: [c_long; 32], pub xmm_space: [c_long; 32], - padding: [c_long; 56], + padding: Padding<[c_long; 56]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/gnu/b64/mod.rs b/src/unix/linux_like/linux/gnu/b64/mod.rs index 5a3022117c2a3..3d442a6d8129d 100644 --- a/src/unix/linux_like/linux/gnu/b64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/mod.rs @@ -63,8 +63,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: u64, - __glibc_reserved5: u64, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct semid_ds { @@ -94,8 +94,8 @@ s! { )))] __reserved2: Padding, pub sem_nsems: crate::__syscall_ulong_t, - __glibc_reserved3: crate::__syscall_ulong_t, - __glibc_reserved4: crate::__syscall_ulong_t, + __glibc_reserved3: Padding, + __glibc_reserved4: Padding, } pub struct timex { 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 2d6957d5e51c7..ee2cd21dec783 100644 --- a/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/powerpc64/mod.rs @@ -245,9 +245,9 @@ s_no_extra_traits! { } pub struct mcontext_t { - __glibc_reserved: [c_ulong; 4], + __glibc_reserved: Padding<[c_ulong; 4]>, pub signal: c_int, - __pad0: c_int, + __pad0: Padding, pub handler: c_ulong, pub oldmask: c_ulong, pub regs: *mut pt_regs, @@ -262,20 +262,20 @@ s_no_extra_traits! { pub vrregs: [[c_uint; 4]; 32], pub vscr: vscr_t, pub vrsave: c_uint, - __pad: [c_uint; 3], + __pad: Padding<[c_uint; 3]>, } #[repr(align(4))] pub struct vscr_t { #[cfg(target_endian = "big")] - __pad: [c_uint; 3], + __pad: Padding<[c_uint; 3]>, #[cfg(target_endian = "big")] pub vscr_word: c_uint, #[cfg(target_endian = "little")] pub vscr_word: c_uint, #[cfg(target_endian = "little")] - __pad: [c_uint; 3], + __pad: Padding<[c_uint; 3]>, } } diff --git a/src/unix/linux_like/linux/gnu/b64/s390x.rs b/src/unix/linux_like/linux/gnu/b64/s390x.rs index 2d7256a8722b8..9c4c2f81772b6 100644 --- a/src/unix/linux_like/linux/gnu/b64/s390x.rs +++ b/src/unix/linux_like/linux/gnu/b64/s390x.rs @@ -20,7 +20,7 @@ s! { #[allow(unpredictable_function_pointer_comparisons)] pub struct sigaction { pub sa_sigaction: crate::sighandler_t, - __glibc_reserved0: c_int, + __glibc_reserved0: Padding, pub sa_flags: c_int, pub sa_restorer: Option, pub sa_mask: crate::sigset_t, @@ -89,7 +89,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, - __glibc_reserved: [c_long; 3], + __glibc_reserved: Padding<[c_long; 3]>, } pub struct stat64 { @@ -110,7 +110,7 @@ s! { pub st_ctime_nsec: c_long, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt64_t, - __glibc_reserved: [c_long; 3], + __glibc_reserved: Padding<[c_long; 3]>, } pub struct pthread_attr_t { diff --git a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs index 8654559b148fb..7edd7c5664001 100644 --- a/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/gnu/b64/x86_64/mod.rs @@ -301,7 +301,7 @@ s! { pub mxcr_mask: c_uint, pub st_space: [c_uint; 32], pub xmm_space: [c_uint; 64], - padding: [c_uint; 24], + padding: Padding<[c_uint; 24]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 6a265560ddd40..2025c315bc1ea 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -233,7 +233,7 @@ s! { pub aio_buf: crate::__u64, pub aio_nbytes: crate::__u64, pub aio_offset: crate::__s64, - aio_reserved2: crate::__u64, + aio_reserved2: Padding, pub aio_flags: crate::__u32, pub aio_resfd: crate::__u32, } @@ -370,7 +370,7 @@ s! { pub ut_tv: __timeval, pub ut_addr_v6: [i32; 4], - __glibc_reserved: [c_char; 20], + __glibc_reserved: Padding<[c_char; 20]>, } } @@ -421,7 +421,7 @@ s_no_extra_traits! { target_pointer_width = "32" ))] __pad: Padding<[c_char; 4]>, - __glibc_reserved: [c_char; 32], + __glibc_reserved: Padding<[c_char; 32]>, } // Internal, for casts to access union fields diff --git a/src/unix/linux_like/linux/musl/b32/arm/mod.rs b/src/unix/linux_like/linux/musl/b32/arm/mod.rs index 8051e6cf8253b..dea804a527026 100644 --- a/src/unix/linux_like/linux/musl/b32/arm/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/arm/mod.rs @@ -6,14 +6,14 @@ pub type wchar_t = u32; s! { pub struct stat { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -28,14 +28,14 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b32/hexagon.rs b/src/unix/linux_like/linux/musl/b32/hexagon.rs index 54bfbda97ed5c..8ce439cee5bf9 100644 --- a/src/unix/linux_like/linux/musl/b32/hexagon.rs +++ b/src/unix/linux_like/linux/musl/b32/hexagon.rs @@ -12,10 +12,10 @@ s! { pub st_uid: c_uint, pub st_gid: c_uint, pub st_rdev: c_ulonglong, - __st_rdev_padding: c_ulong, + __st_rdev_padding: Padding, pub st_size: c_longlong, pub st_blksize: crate::blksize_t, - __st_blksize_padding: c_int, + __st_blksize_padding: Padding, pub st_blocks: crate::blkcnt_t, pub st_atime: crate::time_t, pub st_atime_nsec: c_long, diff --git a/src/unix/linux_like/linux/musl/b32/powerpc.rs b/src/unix/linux_like/linux/musl/b32/powerpc.rs index 984c88b86d143..4bf82c7b0cac4 100644 --- a/src/unix/linux_like/linux/musl/b32/powerpc.rs +++ b/src/unix/linux_like/linux/musl/b32/powerpc.rs @@ -23,7 +23,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_short, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -44,7 +44,7 @@ s! { pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_short, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, diff --git a/src/unix/linux_like/linux/musl/b32/x86/mod.rs b/src/unix/linux_like/linux/musl/b32/x86/mod.rs index c51614240dbc3..ada436fc99b56 100644 --- a/src/unix/linux_like/linux/musl/b32/x86/mod.rs +++ b/src/unix/linux_like/linux/musl/b32/x86/mod.rs @@ -6,14 +6,14 @@ pub type wchar_t = i32; s! { pub struct stat { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -28,14 +28,14 @@ s! { pub struct stat64 { pub st_dev: crate::dev_t, - __st_dev_padding: c_int, + __st_dev_padding: Padding, __st_ino_truncated: c_long, pub st_mode: crate::mode_t, pub st_nlink: crate::nlink_t, pub st_uid: crate::uid_t, pub st_gid: crate::gid_t, pub st_rdev: crate::dev_t, - __st_rdev_padding: c_int, + __st_rdev_padding: Padding, pub st_size: off_t, pub st_blksize: crate::blksize_t, pub st_blocks: crate::blkcnt_t, @@ -124,7 +124,7 @@ s! { __reserved: Padding, pub st_space: [c_long; 32], pub xmm_space: [c_long; 32], - padding: [c_long; 56], + padding: Padding<[c_long; 56]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs index 364e16b5c9257..f7f449cbc8936 100644 --- a/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs +++ b/src/unix/linux_like/linux/musl/b64/x86_64/mod.rs @@ -157,7 +157,7 @@ s! { pub mxcr_mask: c_uint, pub st_space: [c_uint; 32], pub xmm_space: [c_uint; 64], - padding: [c_uint; 24], + padding: Padding<[c_uint; 24]>, } pub struct ucontext_t { diff --git a/src/unix/linux_like/linux/musl/mod.rs b/src/unix/linux_like/linux/musl/mod.rs index 17dd00fa79e50..17f79556b534e 100644 --- a/src/unix/linux_like/linux/musl/mod.rs +++ b/src/unix/linux_like/linux/musl/mod.rs @@ -173,7 +173,7 @@ s! { pub f_fsid: c_ulong, pub f_flag: c_ulong, pub f_namemax: c_ulong, - __f_reserved: [c_int; 6], + __f_reserved: Padding<[c_int; 6]>, } pub struct statvfs64 { @@ -193,7 +193,7 @@ s! { pub f_fsid: c_ulong, pub f_flag: c_ulong, pub f_namemax: c_ulong, - __f_reserved: [c_int; 6], + __f_reserved: Padding<[c_int; 6]>, } // PowerPC implementations are special, see the subfolders @@ -230,7 +230,7 @@ s! { __opaque: *mut c_void, __padding: Padding<[*mut c_void; 4usize]>, __nsub2: size_t, - __padding2: c_char, + __padding2: Padding, } pub struct rtentry { diff --git a/src/unix/linux_like/linux/uclibc/arm/mod.rs b/src/unix/linux_like/linux/uclibc/arm/mod.rs index 7052d9daac2d2..26dd49b24465b 100644 --- a/src/unix/linux_like/linux/uclibc/arm/mod.rs +++ b/src/unix/linux_like/linux/uclibc/arm/mod.rs @@ -153,7 +153,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], 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 56137bdc38e6d..93ed7ab213335 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips32/mod.rs @@ -150,27 +150,27 @@ s! { pub struct msqid_ds { pub msg_perm: crate::ipc_perm, #[cfg(target_endian = "big")] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, pub msg_stime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved1: c_ulong, + __glibc_reserved1: Padding, #[cfg(target_endian = "big")] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, pub msg_rtime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved2: c_ulong, + __glibc_reserved2: Padding, #[cfg(target_endian = "big")] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub msg_ctime: crate::time_t, #[cfg(target_endian = "little")] - __glibc_reserved3: c_ulong, + __glibc_reserved3: Padding, pub __msg_cbytes: c_ulong, pub msg_qnum: crate::msgqnum_t, pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct statfs { @@ -235,7 +235,7 @@ s! { pub l_len: off_t, pub l_sysid: c_long, pub l_pid: crate::pid_t, - pad: [c_long; 4], + pad: Padding<[c_long; 4]>, } pub struct sysinfo { diff --git a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs index b6adb637493bb..4495181400d48 100644 --- a/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mips/mips64/mod.rs @@ -125,8 +125,8 @@ s! { pub msg_qbytes: crate::msglen_t, pub msg_lspid: crate::pid_t, pub msg_lrpid: crate::pid_t, - __glibc_reserved4: c_ulong, - __glibc_reserved5: c_ulong, + __glibc_reserved4: Padding, + __glibc_reserved5: Padding, } pub struct statfs { diff --git a/src/unix/linux_like/linux/uclibc/mod.rs b/src/unix/linux_like/linux/uclibc/mod.rs index 69f1b006e1c01..8ce6d2328f3c5 100644 --- a/src/unix/linux_like/linux/uclibc/mod.rs +++ b/src/unix/linux_like/linux/uclibc/mod.rs @@ -36,7 +36,7 @@ s! { #[cfg(target_endian = "little")] pub f_fsid: c_ulong, #[cfg(target_pointer_width = "32")] - __f_unused: c_int, + __f_unused: Padding, #[cfg(target_endian = "big")] pub f_fsid: c_ulong, pub f_flag: c_ulong, diff --git a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs index 885d8ef477a0e..047fb21cc52aa 100644 --- a/src/unix/linux_like/linux/uclibc/x86_64/mod.rs +++ b/src/unix/linux_like/linux/uclibc/x86_64/mod.rs @@ -188,7 +188,7 @@ s! { pub f_ffree: u64, pub f_favail: u64, pub f_fsid: c_ulong, - __f_unused: c_int, + __f_unused: Padding, pub f_flag: c_ulong, pub f_namemax: c_ulong, __f_spare: [c_int; 6], diff --git a/src/unix/linux_like/mod.rs b/src/unix/linux_like/mod.rs index f4fd1c804144a..dfa62533dfb0c 100644 --- a/src/unix/linux_like/mod.rs +++ b/src/unix/linux_like/mod.rs @@ -220,9 +220,9 @@ s! { pub struct sockaddr_storage { pub ss_family: sa_family_t, #[cfg(target_pointer_width = "32")] - __ss_pad2: [u8; 128 - 2 - 4], + __ss_pad2: Padding<[u8; 128 - 2 - 4]>, #[cfg(target_pointer_width = "64")] - __ss_pad2: [u8; 128 - 2 - 8], + __ss_pad2: Padding<[u8; 128 - 2 - 8]>, __ss_align: size_t, } diff --git a/src/unix/nto/mod.rs b/src/unix/nto/mod.rs index 69b835d68c094..60202cddd7b9a 100644 --- a/src/unix/nto/mod.rs +++ b/src/unix/nto/mod.rs @@ -563,7 +563,7 @@ s! { pub mode: mode_t, pub seq: c_uint, pub key: crate::key_t, - _reserved: [c_int; 4], + _reserved: Padding<[c_int; 4]>, } pub struct regex_t { @@ -615,7 +615,7 @@ s! { pub bs_recv: u64, pub bs_drop: u64, pub bs_capt: u64, - bs_padding: [u64; 13], + bs_padding: Padding<[u64; 13]>, } #[cfg(target_env = "nto71_iosock")] diff --git a/src/unix/nto/neutrino.rs b/src/unix/nto/neutrino.rs index 5d12d24047188..fda8b4839dfcb 100644 --- a/src/unix/nto/neutrino.rs +++ b/src/unix/nto/neutrino.rs @@ -41,7 +41,7 @@ s! { pub srcmsglen: isize, pub dstmsglen: isize, pub type_id: u32, - reserved: u32, + reserved: Padding, } pub struct _cred_info { @@ -75,7 +75,7 @@ s! { pub num_pulses: c_uint, pub rearm_threshold: c_uint, pub options: c_uint, - reserved: [c_uint; 3], + reserved: Padding<[c_uint; 3]>, } // TODO: The following structures are defined in a header file which doesn't @@ -106,7 +106,7 @@ s! { // pub max_num_buffer: c_uint, // pub trigger_num_msg: c_uint, // pub trigger_time: crate::_itimer, - // reserve: c_uint, + // reserve: Padding, //} //pub struct _asyncmsg_connection_descriptor { @@ -121,9 +121,9 @@ s! { // pub ttimer: crate::timer_t, // pub block_con: crate::pthread_cond_t, // pub mu: crate::pthread_mutex_t, - // reserved: c_uint, + // reserved: Padding, // pub attr: crate::_asyncmsg_connection_attr, - // pub reserves: [c_uint; 3], + // reserves: Padding<[c_uint; 3]>, // pub sendq: [crate::_asyncmsg_put_header; 1], // flexarray //} @@ -196,7 +196,7 @@ s! { pub priority_max: c_int, pub interval: u64, pub priority_priv: c_int, - reserved: [c_int; 11], + reserved: Padding<[c_int; 11]>, } pub struct _timer_info { diff --git a/src/unix/nto/x86_64.rs b/src/unix/nto/x86_64.rs index 1fbfe3bb449bf..b8e0b221363dc 100644 --- a/src/unix/nto/x86_64.rs +++ b/src/unix/nto/x86_64.rs @@ -64,7 +64,7 @@ s! { pub mxcsr_mask: u32, pub st_regs: [u8; 128], pub xmm_regs: [u8; 128], - reserved2: [u8; 224], + reserved2: Padding<[u8; 224]>, } pub struct fpu_extention_savearea_64 { diff --git a/src/unix/redox/mod.rs b/src/unix/redox/mod.rs index 79f3e579b353e..6dc5fcc1198ed 100644 --- a/src/unix/redox/mod.rs +++ b/src/unix/redox/mod.rs @@ -61,7 +61,7 @@ s! { pub struct sockaddr_storage { pub ss_family: crate::sa_family_t, - __ss_padding: [u8; 128 - size_of::() - size_of::()], + __ss_padding: Padding<[u8; 128 - size_of::() - size_of::()]>, __ss_align: c_ulong, } diff --git a/src/unix/solarish/mod.rs b/src/unix/solarish/mod.rs index 248c90a9ea17e..963246732c437 100644 --- a/src/unix/solarish/mod.rs +++ b/src/unix/solarish/mod.rs @@ -252,7 +252,7 @@ s! { pub ai_socktype: c_int, pub ai_protocol: c_int, #[cfg(target_arch = "sparc64")] - __sparcv9_pad: c_int, + __sparcv9_pad: Padding, pub ai_addrlen: crate::socklen_t, pub ai_canonname: *mut c_char, pub ai_addr: *mut crate::sockaddr,