Re: [PATCH v7 9/9] rust: sync: atomic: Add Atomic<{usize,isize}>
"Benno Lossin" <[email protected]> Mon, 14 Jul 2025 13:06:08 +0200
| Newsgroups | dev.linux.lists.lkmm,org.kernel.vger.linux-arch,org.kernel.vger.linux-kernel,org.kernel.vger.rust-for-linux |
|---|---|
| Message-ID | <[email protected]> |
On Mon Jul 14, 2025 at 7:36 AM CEST, Boqun Feng wrote: > +// Defines an internal type that always maps to the integer type which has the same size alignment > +// as `isize` and `usize`, and `isize` and `usize` are always bi-directional transmutable to > +// `isize_atomic_repr`, which also always implements `AtomicImpl`. > +#[allow(non_camel_case_types)] > +#[cfg(not(CONFIG_64BIT))] > +type isize_atomic_repr = i32; > +#[allow(non_camel_case_types)] > +#[cfg(CONFIG_64BIT)] > +type isize_atomic_repr = i64; > + > +// Ensure size and alignment requirements are checked. > +crate::static_assert!(core::mem::size_of::<isize>() == core::mem::size_of::<isize_atomic_repr>()); > +crate::static_assert!(core::mem::align_of::<isize>() == core::mem::align_of::<isize_atomic_repr>()); > +crate::static_assert!(core::mem::size_of::<usize>() == core::mem::size_of::<isize_atomic_repr>()); > +crate::static_assert!(core::mem::align_of::<usize>() == core::mem::align_of::<isize_atomic_repr>()); This is fine for now, but I would prefer for this to go into an `assumptions` module like Miguel proposed some time ago. --- Cheers, Benno