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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Alice Ryhl <aliceryhl@google.com> Acked-by: Miguel Ojeda <ojeda@kernel.org> Link: https://lore.kernel.org/r/20250414131934.28418-2-dakr@kernel.org Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
@@ -329,6 +329,14 @@ impl<T> Opaque<T> {
|
||||
}
|
||||
}
|
||||
|
||||
/// 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| {
|
||||
|
||||
Reference in New Issue
Block a user