Enum rsim::processor::elements::cheri::SafeTaggedCap [−][src]
Enumeration that stores either raw data or a valid capability. The capability inside ValidCap(Cc128Cap) will always have its tag bit = True as long as SafeTaggedCap::ValidCap is not created manually.
Variants
ValidCap(Cc128Cap)
Implementations
impl SafeTaggedCap
[src]
impl SafeTaggedCap
[src]pub fn from_integer(data: u128) -> Self
[src]
pub fn to_integer(&self) -> u128
[src]
pub fn from_tagged_mem(top: u64, bot: u64, tag: bool) -> Self
[src]
pub fn from_cap(cap: Cc128Cap) -> Self
[src]
Converts a capability into a SafeTaggedCap. If the capability is valid (has tag bit set), returns ValidCap If the capability is invalid, returns RawData containing the compressed-raw representation
pub fn to_cap(&self) -> Cc128Cap
[src]
Converts a SafeTaggedCap to a Cc128Cap. If ValidCap, just returns the cap. If RawData, decompresses using raw representation and tag=false.
pub fn unwrap_cap(&self) -> Cc128Cap
[src]
Converts a SafeTaggedCap to a Cc128Cap with tag bit = true. Panics if the SafeTaggedCap is not a ValidCap.
Trait Implementations
impl Clone for SafeTaggedCap
[src]
impl Clone for SafeTaggedCap
[src]fn clone(&self) -> SafeTaggedCap
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for SafeTaggedCap
[src]
impl Default for SafeTaggedCap
[src]impl MemoryOf<SafeTaggedCap, CcxCap<Cc128>> for CheriAggregateMemory
[src]
impl MemoryOf<SafeTaggedCap, CcxCap<Cc128>> for CheriAggregateMemory
[src]Impl a capability-aware view of memory for CHERI instructions e.g. a CHERI Load instruction, which is allowed to load capabilities, would use this version.
fn read(&mut self, cap: Cc128Cap) -> MemoryResult<SafeTaggedCap>
[src]
fn write(&mut self, cap: Cc128Cap, val: SafeTaggedCap) -> MemoryResult<()>
[src]
impl PartialEq<SafeTaggedCap> for SafeTaggedCap
[src]
impl PartialEq<SafeTaggedCap> for SafeTaggedCap
[src]fn eq(&self, other: &SafeTaggedCap) -> bool
[src]
fn ne(&self, other: &SafeTaggedCap) -> bool
[src]
impl RegisterFile<SafeTaggedCap> for CheriRV64RegisterFile
[src]
impl RegisterFile<SafeTaggedCap> for CheriRV64RegisterFile
[src]fn read(&mut self, idx: u8) -> Result<SafeTaggedCap, RegisterFileError>
[src]
fn write(
&mut self,
idx: u8,
val: SafeTaggedCap
) -> Result<(), RegisterFileError>
[src]
&mut self,
idx: u8,
val: SafeTaggedCap
) -> Result<(), RegisterFileError>
impl<'a> VecMemInterface<u64, SafeTaggedCap> for CheriAggregateMemory
[src]
impl<'a> VecMemInterface<u64, SafeTaggedCap> for CheriAggregateMemory
[src]fn load_from_memory(
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance)
) -> Result<SafeTaggedCap>
[src]
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance)
) -> Result<SafeTaggedCap>
fn store_to_memory(
&mut self,
eew: Sew,
val: SafeTaggedCap,
addr_provenance: (u64, Provenance)
) -> Result<()>
[src]
&mut self,
eew: Sew,
val: SafeTaggedCap,
addr_provenance: (u64, Provenance)
) -> Result<()>
impl<'a> VecMemInterface<u64, SafeTaggedCap> for IntegerModeCheriAggregateMemory<'a>
[src]
impl<'a> VecMemInterface<u64, SafeTaggedCap> for IntegerModeCheriAggregateMemory<'a>
[src]fn load_from_memory(
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance)
) -> Result<SafeTaggedCap>
[src]
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance)
) -> Result<SafeTaggedCap>
fn store_to_memory(
&mut self,
eew: Sew,
val: SafeTaggedCap,
addr_provenance: (u64, Provenance)
) -> Result<()>
[src]
&mut self,
eew: Sew,
val: SafeTaggedCap,
addr_provenance: (u64, Provenance)
) -> Result<()>
impl VectorRegisterFile<SafeTaggedCap> for CheriVectorRegisterFile
[src]
impl VectorRegisterFile<SafeTaggedCap> for CheriVectorRegisterFile
[src]fn load_vreg(&mut self, vs: u8) -> Result<SafeTaggedCap>
[src]
fn load_vreg_int(&mut self, vs: u8) -> Result<u128>
[src]
fn store_vreg(&mut self, vd: u8, val: SafeTaggedCap) -> Result<()>
[src]
fn store_vreg_int(&mut self, vd: u8, val: u128) -> Result<()>
[src]
fn load_vreg_elem(
&self,
eew: Sew,
vd_base: u8,
idx_from_base: u32
) -> Result<SafeTaggedCap>
[src]
&self,
eew: Sew,
vd_base: u8,
idx_from_base: u32
) -> Result<SafeTaggedCap>
fn load_vreg_elem_int(
&self,
eew: Sew,
vd_base: u8,
idx_from_base: u32
) -> Result<u128>
[src]
&self,
eew: Sew,
vd_base: u8,
idx_from_base: u32
) -> Result<u128>
fn store_vreg_elem(
&mut self,
eew: Sew,
vd_base: u8,
idx_from_base: u32,
val: SafeTaggedCap
) -> Result<()>
[src]
&mut self,
eew: Sew,
vd_base: u8,
idx_from_base: u32,
val: SafeTaggedCap
) -> Result<()>
fn store_vreg_elem_int(
&mut self,
eew: Sew,
vd_base: u8,
idx_from_base: u32,
val: u128
) -> Result<()>
[src]
&mut self,
eew: Sew,
vd_base: u8,
idx_from_base: u32,
val: u128
) -> Result<()>