Messages in this thread Patch in this message | ![/](/images/icornerl.gif) | | Date | Thu, 30 Mar 2023 11:49:46 +0100 | From | Gary Guo <> | Subject | Re: [PATCH v3 03/13] rust: types: add `Opaque::raw_get` |
| |
On Wed, 29 Mar 2023 22:33:03 +0000 y86-dev@protonmail.com wrote:
> From: Benno Lossin <y86-dev@protonmail.com> > > This function mirrors `UnsafeCell::raw_get`. It avoids creating a > reference and allows solely using raw pointers. > The `pin-init` API will be using this, since uninitialized memory > requires raw pointers. > > Signed-off-by: Benno Lossin <y86-dev@protonmail.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
> --- > rust/kernel/types.rs | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/rust/kernel/types.rs b/rust/kernel/types.rs > index 9d0fdbc55843..ff2b2fac951d 100644 > --- a/rust/kernel/types.rs > +++ b/rust/kernel/types.rs > @@ -238,6 +238,14 @@ impl<T> Opaque<T> { > pub fn get(&self) -> *mut T { > UnsafeCell::raw_get(self.0.as_ptr()) > } > + > + /// Gets the value behind `this`. > + /// > + /// This function is useful to get access to the value without creating intermediate > + /// references. > + pub const fn raw_get(this: *const Self) -> *mut T { > + UnsafeCell::raw_get(this.cast::<UnsafeCell<T>>()) > + } > } > > /// A sum type that always holds either a value of type `L` or `R`. > -- > 2.39.2 > >
| ![\](/images/icornerr.gif) |