pub struct SPINLOCK_SPEC;
Expand description
Reading from a spinlock address will:
- Return 0 if lock is already locked
- Otherwise return nonzero, and simultaneously claim the lock
Writing (any value) releases the lock.
If core 0 and core 1 attempt to claim the same lock simultaneously, core 0 wins.
The value returned on success is 0x1 << lock number.
You can read
this register and get spinlock::R
. You can reset
, write
, write_with_zero
this register using spinlock::W
. You can also modify
this register. See API.
Trait Implementations§
source§impl RegisterSpec for SPINLOCK_SPEC
impl RegisterSpec for SPINLOCK_SPEC
source§impl Resettable for SPINLOCK_SPEC
impl Resettable for SPINLOCK_SPEC
reset()
method sets SPINLOCK%s to value 0
source§const RESET_VALUE: u32 = 0u32
const RESET_VALUE: u32 = 0u32
Reset value of the register.
source§fn reset_value() -> Self::Ux
fn reset_value() -> Self::Ux
Reset value of the register.
source§impl Writable for SPINLOCK_SPEC
impl Writable for SPINLOCK_SPEC
write(|w| ..)
method takes spinlock::W
writer structure
source§const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0u32
const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0u32
Specifies the register bits that are not changed if you pass
1
and are changed if you pass 0
source§const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0u32
const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0u32
Specifies the register bits that are not changed if you pass
0
and are changed if you pass 1
impl Readable for SPINLOCK_SPEC
read()
method returns spinlock::R
reader structure
Auto Trait Implementations§
impl Freeze for SPINLOCK_SPEC
impl RefUnwindSafe for SPINLOCK_SPEC
impl Send for SPINLOCK_SPEC
impl Sync for SPINLOCK_SPEC
impl Unpin for SPINLOCK_SPEC
impl UnwindSafe for SPINLOCK_SPEC
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more