pub enum AccessPerms {
NoAccess,
ReadOnly,
ReadWrite,
PrivReadOnly,
PrivReadWrite,
PrivReadWriteUserReadOnly,
}Expand description
Describes the access permissions of a memory region
Access permission bits control read and write access to the corresponding memory region. Permissions are specified for priviledged accesses (PL1) and for user accesses (PL0). Accesses to a memory region without the required permissions generate a Permission fault.
Note that the execute-never (XN) attribute provides an additional permission check on memory regions, see Region::no_exec.
Variants§
NoAccess
All accesses generate a Permission fault
- PL1: No access
- PL0: No access
ReadOnly
All write accesses generate Permission faults
- PL1: Read-only
- PL0: Read-only
ReadWrite
Full access
- PL1: Read/Write
- PL0: Read/Write
PrivReadOnly
PL1 read-only, all other accesses generate Permission faults
- PL1: Read-only
- PL0: No access
PrivReadWrite
All unprivileged accesses generate Permission faults
- PL1: Read/Write
- PL0: No access
PrivReadWriteUserReadOnly
User mode write accesses generate Permission faults
- PL1: Read/Write
- PL0: Read-only
Implementations§
Trait Implementations§
Source§impl Clone for AccessPerms
impl Clone for AccessPerms
Source§fn clone(&self) -> AccessPerms
fn clone(&self) -> AccessPerms
Returns a duplicate of the value. Read more
1.0.0 (const: unstable)§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AccessPerms
impl Debug for AccessPerms
impl Eq for AccessPerms
Source§impl PartialEq for AccessPerms
impl PartialEq for AccessPerms
impl StructuralPartialEq for AccessPerms
Auto Trait Implementations§
impl Freeze for AccessPerms
impl RefUnwindSafe for AccessPerms
impl Send for AccessPerms
impl Sync for AccessPerms
impl Unpin for AccessPerms
impl UnsafeUnpin for AccessPerms
impl UnwindSafe for AccessPerms
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)