Commit 9647b6c5 authored by Danilo Krummrich's avatar Danilo Krummrich
Browse files

rust: types: add `Opaque::zeroed`



Analogous to `Opaque::uninit` add `Opaque::zeroed`, which sets the
corresponding memory to zero. In contrast to `Opaque::uninit`, the
corresponding value, depending on its type, may be initialized.

Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: default avatarAlice Ryhl <aliceryhl@google.com>
Acked-by: default avatarMiguel Ojeda <ojeda@kernel.org>
Link: https://lore.kernel.org/r/20250414131934.28418-2-dakr@kernel.org


Signed-off-by: default avatarDanilo Krummrich <dakr@kernel.org>
parent a38dfd60
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -329,6 +329,14 @@ pub const fn uninit() -> Self {
        }
    }

    /// Creates a new zeroed opaque value.
    pub const fn zeroed() -> Self {
        Self {
            value: UnsafeCell::new(MaybeUninit::zeroed()),
            _pin: PhantomPinned,
        }
    }

    /// Create an opaque pin-initializer from the given pin-initializer.
    pub fn pin_init(slot: impl PinInit<T>) -> impl PinInit<Self> {
        Self::ffi_init(|ptr: *mut T| {