mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
rust: drm: gem: Add raw_dma_resv() function
For retrieving a pointer to the struct dma_resv for a given GEM object. We also introduce it in a new trait, BaseObjectPrivate, which we automatically implement for all gem objects and don't expose to users outside of the crate. Signed-off-by: Lyude Paul <lyude@redhat.com> Reviewed-by: Janne Grunau <j@jananu.net> Tested-by: Janne Grunau <j@jannau.net> Tested-by: Deborah Brouwer <deborah.brouwer@collabora.com> Link: https://patch.msgid.link/20260316211646.650074-3-lyude@redhat.com [ Fix incorrect reference in safety comment. - Danilo ] Signed-off-by: Danilo Krummrich <dakr@kernel.org>
This commit is contained in:
parent
9b836641d3
commit
89b4964c04
|
|
@ -215,6 +215,18 @@ fn create_mmap_offset(&self) -> Result<u64> {
|
|||
|
||||
impl<T: IntoGEMObject> BaseObject for T {}
|
||||
|
||||
/// Crate-private base operations shared by all GEM object classes.
|
||||
#[expect(unused)]
|
||||
pub(crate) trait BaseObjectPrivate: IntoGEMObject {
|
||||
/// Return a pointer to this object's dma_resv.
|
||||
fn raw_dma_resv(&self) -> *mut bindings::dma_resv {
|
||||
// SAFETY: `self.as_raw()` always returns a valid pointer to the base DRM GEM object.
|
||||
unsafe { (*self.as_raw()).resv }
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: IntoGEMObject> BaseObjectPrivate for T {}
|
||||
|
||||
/// A base GEM object.
|
||||
///
|
||||
/// # Invariants
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user