Lines Matching full:bound

49 /// reference is valid in. For instance, the [`Bound`] context guarantees that the [`Device`] is
50 /// bound to a driver for the entire duration of the existence of a [`Device<Bound>`] reference.
52 /// Other [`DeviceContext`] types besides [`Bound`] are [`Normal`], [`Core`] and [`CoreInternal`].
179 /// Convert a [`&Device`](Device) into a [`&Device<Bound>`](Device<Bound>).
183 /// The caller is responsible to ensure that the returned [`&Device<Bound>`](Device<Bound>)
184 /// only lives as long as it can be guaranteed that the [`Device`] is actually bound.
185 pub unsafe fn as_bound(&self) -> &Device<Bound> { in as_bound() argument
189 // returned reference only lives as long as the device is actually bound. in as_bound()
194 // - Any valid `Device` pointer is also a valid pointer for `Device<Bound>`. in as_bound()
200 /// Store a pointer to the bound driver's private data.
225 /// Borrow the driver's private data bound to this [`Device`].
434 /// The specific device context types are: [`CoreInternal`], [`Core`], [`Bound`] and [`Normal`].
438 /// [`Device<Core>`] can dereference to a [`Device<Bound>`].
442 /// - [`CoreInternal`] => [`Core`] => [`Bound`] => [`Normal`]
482 /// The [`Bound`] context is the [`DeviceContext`] of a bus specific device when it is guaranteed to
483 /// be bound to a driver.
485 /// The bound context indicates that for the entire duration of the lifetime of a [`Device<Bound>`]
486 /// reference, the [`Device`] is guaranteed to be bound to a driver.
488 /// Some APIs, such as [`dma::CoherentAllocation`] or [`Devres`] rely on the [`Device`] to be bound,
489 /// which can be proven with the [`Bound`] device context.
491 /// Any abstraction that can guarantee a scope where the corresponding bus device is bound, should
492 /// provide a [`Device<Bound>`] reference to its users for this scope. This allows users to benefit
498 pub struct Bound; struct
503 impl Sealed for super::Bound {} implementation
509 impl DeviceContext for Bound {} implementation
560 $crate::device::Core => $crate::device::Bound
567 $crate::device::Bound => $crate::device::Normal
591 ::kernel::__impl_device_context_into_aref!($crate::device::Bound, $device);