pub struct MdcrEl3(/* private fields */);Expand description
MDCR_EL3 system register value.
Implementations§
Source§impl MdcrEl3
impl MdcrEl3
Sourcepub const SPD32: Self
Available on crate feature el3 only.
pub const SPD32: Self
el3 only.Set to 0b10 to disable AArch32 Secure self-hosted privileged debug from S-EL1.
Sourcepub const NSPB_NS: Self
Available on crate feature el3 only.
pub const NSPB_NS: Self
el3 only.Non-secure state owns the Profiling Buffer. Profiling is disabled in Secure and Realm states.
Source§impl MdcrEl3
impl MdcrEl3
Sourcepub const NSPBE: Self
pub const NSPBE: Self
Non-secure Profiling Buffer Extended. Together with MDCR_EL3.NSPB, controls the Profiling Buffer owning Security state and accesses to Statistical Profiling and Profiling Buffer System registers from EL2 and EL1.
Sourcepub const SDD: Self
pub const SDD: Self
Set to one to disable AArch64 Secure self-hosted debug. Debug exceptions, other than Breakpoint Instruction exceptions, are disabled from all ELs in Secure state.
Sourcepub const SPME: Self
pub const SPME: Self
Secure Performance Monitors Enable. Controls event counting in Secure state and EL3.
Sourcepub const TTRF: Self
pub const TTRF: Self
Trap Trace Filter controls. Traps use of the Trace Filter control registers at EL2 and EL1 to EL3.
Sourcepub const SCCD: Self
pub const SCCD: Self
Secure Cycle Counter Disable. Prohibits PMCCNTR_EL0 from counting in Secure state.
Sourcepub const NSTBE: Self
pub const NSTBE: Self
Non-secure Trace Buffer Extended. Together with MDCR_EL3.NSTB, controls the trace buffer owning Security state and accesses to trace buffer System registers from EL2 and EL1.
Sourcepub const MCCD: Self
pub const MCCD: Self
Monitor Cycle Counter Disable. Prohibits the Cycle Counter, PMCCNTR_EL0, from counting at EL3.
Sourcepub const MPMX: Self
pub const MPMX: Self
Monitor Performance Monitors Extended control. In conjunction with MDCR_EL3.SPME, controls when event counters are enabled at EL3 and in other Secure Exception levels.
Sourcepub const ENPMSN: Self
pub const ENPMSN: Self
Trap accesses to PMSNEVFR_EL1. Controls access to Statistical Profiling PMSNEVFR_EL1 System register from EL2 and EL1.
Source§impl MdcrEl3
impl MdcrEl3
Sourcepub const fn bits(&self) -> u64
pub const fn bits(&self) -> u64
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: u64) -> Option<Self>
pub const fn from_bits(bits: u64) -> Option<Self>
Convert from a bits value.
This method will return None if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: u64) -> Self
pub const fn from_bits_truncate(bits: u64) -> Self
Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: u64) -> Self
pub const fn from_bits_retain(bits: u64) -> Self
Convert from a bits value exactly.
Sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
Get a flags value with the bits of a flag with the given name set.
This method will return None if name is empty or doesn’t
correspond to any named flag.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
Sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
remove won’t truncate other, but the ! operator will.
Sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Call insert when value is true or remove when value is false.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&) of the bits in two flags values.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|) of the bits in two flags values.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!) of the bits in a flags value, truncating the result.
Source§impl MdcrEl3
impl MdcrEl3
Sourcepub const fn iter(&self) -> Iter<MdcrEl3>
pub const fn iter(&self) -> Iter<MdcrEl3>
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
Sourcepub const fn iter_names(&self) -> IterNames<MdcrEl3>
pub const fn iter_names(&self) -> IterNames<MdcrEl3>
Yield a set of contained named flags values.
This method is like iter, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
Source§impl MdcrEl3
impl MdcrEl3
Sourcepub const RLTE_SHIFT: u32 = 0
Available on crate feature el3 only.
pub const RLTE_SHIFT: u32 = 0
el3 only.Offset of the RLTE field.
Sourcepub const EPMADE_SHIFT: u32 = 2
Available on crate feature el3 only.
pub const EPMADE_SHIFT: u32 = 2
el3 only.Offset of the EPMADE field.
Sourcepub const ETADE_SHIFT: u32 = 3
Available on crate feature el3 only.
pub const ETADE_SHIFT: u32 = 3
el3 only.Offset of the ETADE field.
Sourcepub const EDADE_SHIFT: u32 = 4
Available on crate feature el3 only.
pub const EDADE_SHIFT: u32 = 4
el3 only.Offset of the EDADE field.
Sourcepub const ENPM2_SHIFT: u32 = 7
Available on crate feature el3 only.
pub const ENPM2_SHIFT: u32 = 7
el3 only.Offset of the EnPM2 field.
Sourcepub const TDOSA_SHIFT: u32 = 10
Available on crate feature el3 only.
pub const TDOSA_SHIFT: u32 = 10
el3 only.Offset of the TDOSA field.
Sourcepub const NSPBE_SHIFT: u32 = 11
Available on crate feature el3 only.
pub const NSPBE_SHIFT: u32 = 11
el3 only.Offset of the NSPBE field.
Sourcepub const NSPB_SHIFT: u32 = 12
Available on crate feature el3 only.
pub const NSPB_SHIFT: u32 = 12
el3 only.Offset of the NSPB field.
Sourcepub const SPD32_SHIFT: u32 = 14
Available on crate feature el3 only.
pub const SPD32_SHIFT: u32 = 14
el3 only.Offset of the SPD32 field.
Sourcepub const SPD32_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const SPD32_MASK: u64 = 0b11
el3 only.Mask for the SPD32 field.
Sourcepub const SPME_SHIFT: u32 = 17
Available on crate feature el3 only.
pub const SPME_SHIFT: u32 = 17
el3 only.Offset of the SPME field.
Sourcepub const TTRF_SHIFT: u32 = 19
Available on crate feature el3 only.
pub const TTRF_SHIFT: u32 = 19
el3 only.Offset of the TTRF field.
Sourcepub const EDAD_SHIFT: u32 = 20
Available on crate feature el3 only.
pub const EDAD_SHIFT: u32 = 20
el3 only.Offset of the EDAD field.
Sourcepub const EPMAD_SHIFT: u32 = 21
Available on crate feature el3 only.
pub const EPMAD_SHIFT: u32 = 21
el3 only.Offset of the EPMAD field.
Sourcepub const ETAD_SHIFT: u32 = 22
Available on crate feature el3 only.
pub const ETAD_SHIFT: u32 = 22
el3 only.Offset of the ETAD field.
Sourcepub const SCCD_SHIFT: u32 = 23
Available on crate feature el3 only.
pub const SCCD_SHIFT: u32 = 23
el3 only.Offset of the SCCD field.
Sourcepub const NSTB_SHIFT: u32 = 24
Available on crate feature el3 only.
pub const NSTB_SHIFT: u32 = 24
el3 only.Offset of the NSTB field.
Sourcepub const NSTBE_SHIFT: u32 = 26
Available on crate feature el3 only.
pub const NSTBE_SHIFT: u32 = 26
el3 only.Offset of the NSTBE field.
Sourcepub const TDCC_SHIFT: u32 = 27
Available on crate feature el3 only.
pub const TDCC_SHIFT: u32 = 27
el3 only.Offset of the TDCC field.
Sourcepub const MTPME_SHIFT: u32 = 28
Available on crate feature el3 only.
pub const MTPME_SHIFT: u32 = 28
el3 only.Offset of the MTPME field.
Sourcepub const PMSSE_SHIFT: u32 = 30
Available on crate feature el3 only.
pub const PMSSE_SHIFT: u32 = 30
el3 only.Offset of the PMSSE field.
Sourcepub const PMSSE_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const PMSSE_MASK: u64 = 0b11
el3 only.Mask for the PMSSE field.
Sourcepub const SBRBE_SHIFT: u32 = 32
Available on crate feature el3 only.
pub const SBRBE_SHIFT: u32 = 32
el3 only.Offset of the SBRBE field.
Sourcepub const SBRBE_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const SBRBE_MASK: u64 = 0b11
el3 only.Mask for the SBRBE field.
Sourcepub const MCCD_SHIFT: u32 = 34
Available on crate feature el3 only.
pub const MCCD_SHIFT: u32 = 34
el3 only.Offset of the MCCD field.
Sourcepub const MPMX_SHIFT: u32 = 35
Available on crate feature el3 only.
pub const MPMX_SHIFT: u32 = 35
el3 only.Offset of the MPMX field.
Sourcepub const ENPMSN_SHIFT: u32 = 36
Available on crate feature el3 only.
pub const ENPMSN_SHIFT: u32 = 36
el3 only.Offset of the EnPMSN field.
Sourcepub const E3BREW_SHIFT: u32 = 37
Available on crate feature el3 only.
pub const E3BREW_SHIFT: u32 = 37
el3 only.Offset of the E3BREW field.
Sourcepub const E3BREC_SHIFT: u32 = 38
Available on crate feature el3 only.
pub const E3BREC_SHIFT: u32 = 38
el3 only.Offset of the E3BREC field.
Sourcepub const ENTB2_SHIFT: u32 = 39
Available on crate feature el3 only.
pub const ENTB2_SHIFT: u32 = 39
el3 only.Offset of the EnTB2 field.
Sourcepub const PMEE_SHIFT: u32 = 40
Available on crate feature el3 only.
pub const PMEE_SHIFT: u32 = 40
el3 only.Offset of the PMEE field.
Sourcepub const ENPMS3_SHIFT: u32 = 42
Available on crate feature el3 only.
pub const ENPMS3_SHIFT: u32 = 42
el3 only.Offset of the EnPMS3 field.
Sourcepub const EBWE_SHIFT: u32 = 43
Available on crate feature el3 only.
pub const EBWE_SHIFT: u32 = 43
el3 only.Offset of the EBWE field.
Sourcepub const ENPMSS_SHIFT: u32 = 44
Available on crate feature el3 only.
pub const ENPMSS_SHIFT: u32 = 44
el3 only.Offset of the EnPMSS field.
Sourcepub const EPMSSAD_SHIFT: u32 = 45
Available on crate feature el3 only.
pub const EPMSSAD_SHIFT: u32 = 45
el3 only.Offset of the EPMSSAD field.
Sourcepub const EPMSSAD_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const EPMSSAD_MASK: u64 = 0b11
el3 only.Mask for the EPMSSAD field.
Sourcepub const ENITE_SHIFT: u32 = 47
Available on crate feature el3 only.
pub const ENITE_SHIFT: u32 = 47
el3 only.Offset of the EnITE field.
Sourcepub const ETBAD_SHIFT: u32 = 48
Available on crate feature el3 only.
pub const ETBAD_SHIFT: u32 = 48
el3 only.Offset of the ETBAD field.
Sourcepub const ETBAD_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const ETBAD_MASK: u64 = 0b11
el3 only.Mask for the ETBAD field.
Sourcepub const ENSTEPOP_SHIFT: u32 = 50
Available on crate feature el3 only.
pub const ENSTEPOP_SHIFT: u32 = 50
el3 only.Offset of the EnSTEPOP field.
Sourcepub const PMSEE_SHIFT: u32 = 51
Available on crate feature el3 only.
pub const PMSEE_SHIFT: u32 = 51
el3 only.Offset of the PMSEE field.
Sourcepub const PMSEE_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const PMSEE_MASK: u64 = 0b11
el3 only.Mask for the PMSEE field.
Sourcepub const TRBEE_SHIFT: u32 = 53
Available on crate feature el3 only.
pub const TRBEE_SHIFT: u32 = 53
el3 only.Offset of the TRBEE field.
Sourcepub const TRBEE_MASK: u64 = 0b11
Available on crate feature el3 only.
pub const TRBEE_MASK: u64 = 0b11
el3 only.Mask for the TRBEE field.
Sourcepub const ENPMS4_SHIFT: u32 = 55
Available on crate feature el3 only.
pub const ENPMS4_SHIFT: u32 = 55
el3 only.Offset of the EnPMS4 field.
Sourcepub const fn nspb(self) -> u8
Available on crate feature el3 only.
pub const fn nspb(self) -> u8
el3 only.Returns the value of the NSPB field.
Sourcepub const fn spd32(self) -> u8
Available on crate feature el3 only.
pub const fn spd32(self) -> u8
el3 only.Returns the value of the SPD32 field.
Sourcepub const fn nstb(self) -> u8
Available on crate feature el3 only.
pub const fn nstb(self) -> u8
el3 only.Returns the value of the NSTB field.
Sourcepub const fn pmsse(self) -> u8
Available on crate feature el3 only.
pub const fn pmsse(self) -> u8
el3 only.Returns the value of the PMSSE field.
Sourcepub const fn sbrbe(self) -> u8
Available on crate feature el3 only.
pub const fn sbrbe(self) -> u8
el3 only.Returns the value of the SBRBE field.
Sourcepub const fn pmee(self) -> u8
Available on crate feature el3 only.
pub const fn pmee(self) -> u8
el3 only.Returns the value of the PMEE field.
Sourcepub const fn epmssad(self) -> u8
Available on crate feature el3 only.
pub const fn epmssad(self) -> u8
el3 only.Returns the value of the EPMSSAD field.
Sourcepub const fn etbad(self) -> u8
Available on crate feature el3 only.
pub const fn etbad(self) -> u8
el3 only.Returns the value of the ETBAD field.
Trait Implementations§
Source§impl BitAndAssign for MdcrEl3
impl BitAndAssign for MdcrEl3
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&) of the bits in two flags values.
Source§impl BitOrAssign for MdcrEl3
impl BitOrAssign for MdcrEl3
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|) of the bits in two flags values.
Source§impl BitXorAssign for MdcrEl3
impl BitXorAssign for MdcrEl3
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
Source§impl Extend<MdcrEl3> for MdcrEl3
impl Extend<MdcrEl3> for MdcrEl3
Source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
The bitwise or (|) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl Flags for MdcrEl3
impl Flags for MdcrEl3
Source§fn from_bits_retain(bits: u64) -> MdcrEl3
fn from_bits_retain(bits: u64) -> MdcrEl3
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true if any unknown bits are set.Source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
Source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
Source§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
Source§fn iter_defined_names() -> IterDefinedNames<Self>
fn iter_defined_names() -> IterDefinedNames<Self>
Self::FLAGS.Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|) of the bits in two flags values.Source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!). Read moreSource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^) of the bits in two flags values.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&) of the bits in two flags values.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!). Read moreSource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^) of the bits in two flags values.Source§fn complement(self) -> Self
fn complement(self) -> Self
!) of the bits in a flags value, truncating the result.Source§impl FromIterator<MdcrEl3> for MdcrEl3
impl FromIterator<MdcrEl3> for MdcrEl3
Source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
The bitwise or (|) of the bits in each flags value.
Source§impl IntoIterator for MdcrEl3
impl IntoIterator for MdcrEl3
Source§impl Sub for MdcrEl3
impl Sub for MdcrEl3
Source§impl SubAssign for MdcrEl3
impl SubAssign for MdcrEl3
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.