Enum rust_cheri_compressed_cap::cc64::Cc64 [−][src]
pub enum Cc64 {}
Defines the CC64 capability profile as an implementation of the CompressedCapability trait.
Empty enum, so it cannot be itself constructed. If you want a CC64 capability, instantiate CC64::Cap.
Derives Debug, Copy, Clone so that CcxCap
Trait Implementations
impl CompressedCapability for Cc64
[src]
impl CompressedCapability for Cc64
[src]type Length = u64
ccx_length_t Rust-land equivalent - should be a superset of Addr
type Offset = i64
ccx_offset_t Rust-land equivalent - should be a superset of Addr
type Addr = u32
ccx_addr_t equivalent
type FfiLength = u64
ccx_length_t C-land equivalent - should have a memory layout identical to the C ccx_length_t. This is separate from Length because for 128-bit types the Rust and C versions may not look the same. In practice, we just assume they are the same (see crate::c_funcs documentation). Read more
type FfiOffset = i64
ccx_offset_t C-land equivalent - should have a memory layout identical to the C ccx_offset_t. See Self::FfiLength for an explanation. Read more
const MAX_REPRESENTABLE_OTYPE: u32
[src]
_CC_N(OTYPE_UNSEALED_SIGNED) = (((int64_t)-1) - 0u)```
The OTYPE field is 4 bits (50:47) in CC64
const OTYPE_UNSEALED: u32
[src]
const OTYPE_SENTRY: u32
[src]
const OTYPE_RESERVED2: u32
[src]
const OTYPE_RESERVED3: u32
[src]
const MAX_UNRESERVED_OTYPE: u32
[src]
fn compress_raw(cap: &CcxCap<Cc64>) -> u32
[src]
fn decompress_raw(pesbt: u32, cursor: u32, tag: bool) -> CcxCap<Cc64>
[src]
fn compress_mem(cap: &CcxCap<Cc64>) -> u32
[src]
fn decompress_mem(pesbt: u32, cursor: u32, tag: bool) -> CcxCap<Cc64>
[src]
fn get_uperms(cap: &CcxCap<Cc64>) -> u32
[src]
fn get_perms(cap: &CcxCap<Cc64>) -> u32
[src]
fn get_otype(cap: &CcxCap<Cc64>) -> u32
[src]
fn get_reserved(cap: &CcxCap<Cc64>) -> u8
[src]
fn get_flags(cap: &CcxCap<Cc64>) -> u8
[src]
fn update_uperms(cap: &mut CcxCap<Cc64>, value: u32)
[src]
fn update_perms(cap: &mut CcxCap<Cc64>, value: u32)
[src]
fn update_otype(cap: &mut CcxCap<Cc64>, value: u32)
[src]
fn update_reserved(cap: &mut CcxCap<Cc64>, value: u8)
[src]
fn update_flags(cap: &mut CcxCap<Cc64>, value: u8)
[src]
fn extract_bounds_bits(pesbt: Self::Addr) -> CcxBoundsBits
[src]
fn set_bounds(
cap: &mut CcxCap<Cc64>,
req_base: Self::Addr,
req_top: Self::Length
) -> bool
[src]
cap: &mut CcxCap<Cc64>,
req_base: Self::Addr,
req_top: Self::Length
) -> bool
fn is_representable_cap_exact(cap: &CcxCap<Cc64>) -> bool
[src]
fn is_representable_new_addr(
sealed: bool,
base: Self::Addr,
length: Self::Length,
cursor: Self::Addr,
new_cursor: Self::Addr
) -> bool
[src]
sealed: bool,
base: Self::Addr,
length: Self::Length,
cursor: Self::Addr,
new_cursor: Self::Addr
) -> bool
fn make_max_perms_cap(
base: Self::Addr,
cursor: Self::Addr,
top: Self::Length
) -> CcxCap<Cc64>
[src]
base: Self::Addr,
cursor: Self::Addr,
top: Self::Length
) -> CcxCap<Cc64>
fn get_representable_length(length: Self::Length) -> Self::Length
[src]
fn get_required_alignment(length: Self::Length) -> Self::Length
[src]
fn get_alignment_mask(length: Self::Length) -> Self::Length
[src]
const PERM_GLOBAL: u32
[src]
const PERM_EXECUTE: u32
[src]
const PERM_LOAD: u32
[src]
const PERM_STORE: u32
[src]
const PERM_LOAD_CAP: u32
[src]
const PERM_STORE_CAP: u32
[src]
const PERM_STORE_LOCAL: u32
[src]
const PERM_SEAL: u32
[src]
const PERM_CINVOKE: u32
[src]
const PERM_UNSEAL: u32
[src]
const PERM_ACCESS_SYS_REGS: u32
[src]
const PERM_SETCID: u32
[src]
impl Copy for Cc64
[src]
Auto Trait Implementations
impl RefUnwindSafe for Cc64
impl Send for Cc64
impl Sync for Cc64
impl Unpin for Cc64
impl UnwindSafe for Cc64
Blanket Implementations
impl<T> CheriRVFuncs<T> for T where
T: CompressedCapability,
<T as CompressedCapability>::Offset: TryInto<<T as CompressedCapability>::Addr>,
[src]
impl<T> CheriRVFuncs<T> for T where
T: CompressedCapability,
<T as CompressedCapability>::Offset: TryInto<<T as CompressedCapability>::Addr>,
[src]type Cap = CcxCap<T>
type CapAddrInt = <T as CompressedCapability>::Addr
type CapAddrBits = <T as CompressedCapability>::Addr
type CapLen = <T as CompressedCapability>::Length
type OType = u32
type Perms = u32
type Flags = u8
pub fn getCapBounds(
&<T as CheriRVFuncs<T>>::Cap
) -> (<T as CheriRVFuncs<T>>::CapAddrInt, <T as CheriRVFuncs<T>>::CapLen)
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> (<T as CheriRVFuncs<T>>::CapAddrInt, <T as CheriRVFuncs<T>>::CapLen)
pub fn getCapBaseBits(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapAddrBits
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapAddrBits
pub fn getCapTop(&<T as CheriRVFuncs<T>>::Cap) -> <T as CheriRVFuncs<T>>::CapLen
[src]
pub fn getCapLength(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapLen
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapLen
pub fn inCapBounds(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits,
<T as CheriRVFuncs<T>>::CapLen
) -> bool
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits,
<T as CheriRVFuncs<T>>::CapLen
) -> bool
pub fn getCapCursor(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapAddrInt
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapAddrInt
pub fn getCapOffsetBits(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapAddrBits
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::CapAddrBits
pub fn setCapBounds(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits,
<T as CheriRVFuncs<T>>::CapLen
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits,
<T as CheriRVFuncs<T>>::CapLen
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
pub fn setCapAddr(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
pub fn setCapOffset(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
pub fn incCapOffset(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::CapAddrBits
) -> (bool, <T as CheriRVFuncs<T>>::Cap)
pub fn getRepresentableAlignmentMask(
<T as CheriRVFuncs<T>>::CapLen
) -> <T as CheriRVFuncs<T>>::CapLen
[src]
<T as CheriRVFuncs<T>>::CapLen
) -> <T as CheriRVFuncs<T>>::CapLen
pub fn getRepresentableLength(
<T as CheriRVFuncs<T>>::CapLen
) -> <T as CheriRVFuncs<T>>::CapLen
[src]
<T as CheriRVFuncs<T>>::CapLen
) -> <T as CheriRVFuncs<T>>::CapLen
pub fn sealCap(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::OType
) -> <T as CheriRVFuncs<T>>::Cap
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::OType
) -> <T as CheriRVFuncs<T>>::Cap
pub fn unsealCap(&<T as CheriRVFuncs<T>>::Cap) -> <T as CheriRVFuncs<T>>::Cap
[src]
pub fn isCapSealed(&<T as CheriRVFuncs<T>>::Cap) -> bool
[src]
pub fn hasReservedOType(&<T as CheriRVFuncs<T>>::Cap) -> bool
[src]
pub fn invalidateCap(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::Cap
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::Cap
pub fn getCapPerms(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::Perms
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::Perms
pub fn setCapPerms(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::Perms
) -> <T as CheriRVFuncs<T>>::Cap
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::Perms
) -> <T as CheriRVFuncs<T>>::Cap
pub fn getCapFlags(
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::Flags
[src]
&<T as CheriRVFuncs<T>>::Cap
) -> <T as CheriRVFuncs<T>>::Flags
pub fn setCapFlags(
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::Flags
) -> <T as CheriRVFuncs<T>>::Cap
[src]
&<T as CheriRVFuncs<T>>::Cap,
<T as CheriRVFuncs<T>>::Flags
) -> <T as CheriRVFuncs<T>>::Cap