pub struct RawMonitoredSpinlock { /* private fields */ }Expand description
Opaque layout block matching the Zircon C++ MonitoredSpinLock exactly.
Implementations§
Source§impl RawMonitoredSpinlock
impl RawMonitoredSpinlock
pub const INIT: Self
Sourcepub const fn const_init(_class_id: *const c_void) -> Self
pub const fn const_init(_class_id: *const c_void) -> Self
Statically initializes a RawMonitoredSpinlock in constant context.
Trait Implementations§
Source§impl Default for RawMonitoredSpinlock
impl Default for RawMonitoredSpinlock
Source§impl Drop for RawMonitoredSpinlock
impl Drop for RawMonitoredSpinlock
Source§impl HasPinData for RawMonitoredSpinlock
impl HasPinData for RawMonitoredSpinlock
Source§impl LockPolicy<RawMonitoredSpinlock> for IrqSavePolicy
impl LockPolicy<RawMonitoredSpinlock> for IrqSavePolicy
Source§type AcquireArgs = SourceTag
type AcquireArgs = SourceTag
Arguments passed when acquiring the lock under this policy.
Source§type GuardState = MonitoredSpinlockGuardState
type GuardState = MonitoredSpinlockGuardState
State returned from lock acquisition and subsequently passed to lock release.
Source§unsafe fn acquire(
lock: &RawMonitoredSpinlock,
entry: *mut LockEntryStorage,
tag: Self::AcquireArgs,
) -> Self::GuardState
unsafe fn acquire( lock: &RawMonitoredSpinlock, entry: *mut LockEntryStorage, tag: Self::AcquireArgs, ) -> Self::GuardState
Acquires the raw synchronization lock under a type-level lock class. Read more
Source§unsafe fn reacquire(
lock: &RawMonitoredSpinlock,
entry: *mut LockEntryStorage,
state: &mut Self::GuardState,
)
unsafe fn reacquire( lock: &RawMonitoredSpinlock, entry: *mut LockEntryStorage, state: &mut Self::GuardState, )
Re-acquires the raw synchronization lock using existing guard state (e.g. after
call_unlocked). Read moreSource§unsafe fn release(
lock: &RawMonitoredSpinlock,
entry: *mut LockEntryStorage,
state: Self::GuardState,
)
unsafe fn release( lock: &RawMonitoredSpinlock, entry: *mut LockEntryStorage, state: Self::GuardState, )
Releases the raw synchronization lock, restoring the state. Read more
Source§impl LockPolicy<RawMonitoredSpinlock> for NoIrqSavePolicy
impl LockPolicy<RawMonitoredSpinlock> for NoIrqSavePolicy
Source§type AcquireArgs = SourceTag
type AcquireArgs = SourceTag
Arguments passed when acquiring the lock under this policy.
Source§type GuardState = SourceTag
type GuardState = SourceTag
State returned from lock acquisition and subsequently passed to lock release.
Source§unsafe fn acquire(
lock: &RawMonitoredSpinlock,
entry: *mut LockEntryStorage,
tag: Self::AcquireArgs,
) -> Self::GuardState
unsafe fn acquire( lock: &RawMonitoredSpinlock, entry: *mut LockEntryStorage, tag: Self::AcquireArgs, ) -> Self::GuardState
Acquires the raw synchronization lock under a type-level lock class. Read more
Source§unsafe fn reacquire(
lock: &RawMonitoredSpinlock,
entry: *mut LockEntryStorage,
state: &mut Self::GuardState,
)
unsafe fn reacquire( lock: &RawMonitoredSpinlock, entry: *mut LockEntryStorage, state: &mut Self::GuardState, )
Re-acquires the raw synchronization lock using existing guard state (e.g. after
call_unlocked). Read moreSource§unsafe fn release(
lock: &RawMonitoredSpinlock,
entry: *mut LockEntryStorage,
_state: Self::GuardState,
)
unsafe fn release( lock: &RawMonitoredSpinlock, entry: *mut LockEntryStorage, _state: Self::GuardState, )
Releases the raw synchronization lock, restoring the state. Read more
Source§impl PinnedDrop for RawMonitoredSpinlock
impl PinnedDrop for RawMonitoredSpinlock
Source§impl RawLock for RawMonitoredSpinlock
impl RawLock for RawMonitoredSpinlock
Source§const LOCK_FLAGS: LockFlags = lockdep::LOCK_FLAGS_IRQ_SAFE
const LOCK_FLAGS: LockFlags = lockdep::LOCK_FLAGS_IRQ_SAFE
Flags specifying validation rules for the lock class.
Source§type LockEntry = LockEntryStorage
type LockEntry = LockEntryStorage
Opaque stack entry storage type used by the lock validation loop detector (e.g. LockDep).
Source§type DefaultPolicy = IrqSavePolicy
type DefaultPolicy = IrqSavePolicy
Default policy that should be used when acquiring this lock.
Source§unsafe fn init(class_id: *const c_void) -> impl PinInit<Self, Infallible>
unsafe fn init(class_id: *const c_void) -> impl PinInit<Self, Infallible>
Returns a PinInit block to initialize the raw mutex in-place. Read more
Source§fn as_mut_ptr(&self) -> *mut c_void
fn as_mut_ptr(&self) -> *mut c_void
Convert the raw mutex reference to a standard c_void pointer for FFI.
impl Send for RawMonitoredSpinlock
impl Sync for RawMonitoredSpinlock
Auto Trait Implementations§
impl !Freeze for RawMonitoredSpinlock
impl !RefUnwindSafe for RawMonitoredSpinlock
impl UnsafeUnpin for RawMonitoredSpinlock
impl UnwindSafe for RawMonitoredSpinlock
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§impl<T> PinInit<T> for T
impl<T> PinInit<T> for T
Source§unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), !>
unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), !>
Initializes
slot. Read moreSource§fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>where
F: FnOnce(Pin<&mut T>) -> Result<(), E>,
First initializes the value using
self then calls the function f with the initialized
value. Read more