Struct tock_registers::registers::Aliased
source · [−]#[repr(transparent)]pub struct Aliased<T: UIntLike, R: RegisterLongName = (), W: RegisterLongName = ()> { /* private fields */ }Expand description
Read-only and write-only registers aliased to the same address.
Unlike the ReadWrite register, this represents a register
which has different meanings based on if it is written or read.
This might be found on a device where control and status registers
are accessed via the same memory address via writes and reads,
respectively.
This register implements Readable and Writeable, but in
general does not implement
ReadWriteable (only if the
type parameters R and W are identical, in which case a
ReadWrite register might be a better choice).
Trait Implementations
sourceimpl<T: UIntLike, R: RegisterLongName, W: RegisterLongName> Readable for Aliased<T, R, W>
impl<T: UIntLike, R: RegisterLongName, W: RegisterLongName> Readable for Aliased<T, R, W>
type T = T
type R = R
sourcefn read_as_enum<E: TryFromValue<Self::T, EnumType = E>>(
&self,
field: Field<Self::T, Self::R>
) -> Option<E>
fn read_as_enum<E: TryFromValue<Self::T, EnumType = E>>(
&self,
field: Field<Self::T, Self::R>
) -> Option<E>
Set the raw register value
sourcefn extract(&self) -> LocalRegisterCopy<Self::T, Self::R>
fn extract(&self) -> LocalRegisterCopy<Self::T, Self::R>
Make a local copy of the register
sourcefn is_set(&self, field: Field<Self::T, Self::R>) -> bool
fn is_set(&self, field: Field<Self::T, Self::R>) -> bool
Check if one or more bits in a field are set
sourcefn matches_any(&self, field: FieldValue<Self::T, Self::R>) -> bool
fn matches_any(&self, field: FieldValue<Self::T, Self::R>) -> bool
Check if any specified parts of a field match
sourcefn matches_all(&self, field: FieldValue<Self::T, Self::R>) -> bool
fn matches_all(&self, field: FieldValue<Self::T, Self::R>) -> bool
Check if all specified parts of a field match
sourceimpl<T: UIntLike, R: RegisterLongName, W: RegisterLongName> Writeable for Aliased<T, R, W>
impl<T: UIntLike, R: RegisterLongName, W: RegisterLongName> Writeable for Aliased<T, R, W>
type T = T
type R = W
sourcefn write(&self, field: FieldValue<Self::T, Self::R>)
fn write(&self, field: FieldValue<Self::T, Self::R>)
Write the value of one or more fields, overwriting the other fields with zero
sourcefn modify_no_read(
&self,
original: LocalRegisterCopy<Self::T, Self::R>,
field: FieldValue<Self::T, Self::R>
)
fn modify_no_read(
&self,
original: LocalRegisterCopy<Self::T, Self::R>,
field: FieldValue<Self::T, Self::R>
)
Write the value of one or more fields, maintaining the value of unchanged fields via a provided original value, rather than a register read. Read more
Auto Trait Implementations
impl<T, R = (), W = ()> !RefUnwindSafe for Aliased<T, R, W>
impl<T, R, W> Send for Aliased<T, R, W> where
R: Send,
T: Send,
W: Send,
impl<T, R = (), W = ()> !Sync for Aliased<T, R, W>
impl<T, R, W> Unpin for Aliased<T, R, W> where
R: Unpin,
T: Unpin,
W: Unpin,
impl<T, R, W> UnwindSafe for Aliased<T, R, W> where
R: UnwindSafe,
T: UnwindSafe,
W: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T, R, S> ReadWriteable for S where
R: RegisterLongName,
S: Readable<T = T, R = R> + Writeable<T = T, R = R>,
T: UIntLike,
impl<T, R, S> ReadWriteable for S where
R: RegisterLongName,
S: Readable<T = T, R = R> + Writeable<T = T, R = R>,
T: UIntLike,
type T = T
type R = R
sourcefn modify(
&self,
field: FieldValue<<S as ReadWriteable>::T, <S as ReadWriteable>::R>
)
fn modify(
&self,
field: FieldValue<<S as ReadWriteable>::T, <S as ReadWriteable>::R>
)
Write the value of one or more fields, leaving the other fields unchanged