#[repr(transparent)]pub struct MemoryFlags(pub u32);Tuple Fields§
§0: u32Implementations§
Source§impl MemoryFlags
impl MemoryFlags
Sourcepub const ACCESS_READ: u32 = 0x00000001
pub const ACCESS_READ: u32 = 0x00000001
Memory is readable.
Sourcepub const ACCESS_WRITE: u32 = 0x00000002
pub const ACCESS_WRITE: u32 = 0x00000002
Memory is writable.
Sourcepub const ACCESS_EXECUTE: u32 = 0x00000004
pub const ACCESS_EXECUTE: u32 = 0x00000004
Memory is executable.
Sourcepub const ACCESS_RWX: u32
pub const ACCESS_RWX: u32
Memory is readable, writable and executable.
Sourcepub const MMAP_ENABLE_JIT: u32 = 0x00000010
pub const MMAP_ENABLE_JIT: u32 = 0x00000010
Use a MAP_JIT flag available on Apple platforms (introduced by Mojave), which allows JIT code to be
executed in a MAC bundle.
This flag may be turned on by the allocator if there is no other way of allocating executable memory.
§Note
This flag can only be used with alloc(), MAP_JIT only works on OSX and not on iOS.
When a process uses fork() the child process has no access to the pages mapped with MAP_JIT.
Sourcepub const MMAP_MAX_ACCESS_READ: u32 = 0x00000020
pub const MMAP_MAX_ACCESS_READ: u32 = 0x00000020
Pass PROT_MAX(PROT_READ) or PROT_MPROTECT(PROT_READ) to mmap() on platforms that support it.
This flag allows to set a “maximum access” that the memory page can get during its lifetime. Use protect to change the access flags.
§Note
This flag can only be used with alloc() and alloc_dual_mapping.
However alloc_dual_mapping may automatically use this if AccessRead is used.
Sourcepub const MMAP_MAX_ACCESS_WRITE: u32 = 0x00000040
pub const MMAP_MAX_ACCESS_WRITE: u32 = 0x00000040
Pass PROT_MAX(PROT_WRITE) or PROT_MPROTECT(PROT_WRITE) to mmap() on platforms that support it.
This flag allows to set a “maximum access” that the memory page can get during its lifetime. Use protect to change the access flags.
§Note
This flag can only be used with alloc() and alloc_dual_mapping.
However alloc_dual_mapping may automatically use this if AccessWrite is used.
Sourcepub const MMAP_MAX_ACCESS_EXECUTE: u32 = 0x00000080
pub const MMAP_MAX_ACCESS_EXECUTE: u32 = 0x00000080
Pass PROT_MAX(PROT_EXEC) or PROT_MPROTECT(PROT_EXEC) to mmap() on platforms that support it.
This flag allows to set a “maximum access” that the memory page can get during its lifetime. Use protect to change the access flags.
§Note
This flag can only be used with alloc() and alloc_dual_mapping.
However alloc_dual_mapping may automatically use this if AccessExecute is used.
pub const MMAP_MAX_ACCESS_RW: u32
pub const MMAP_MAX_ACCESS_RX: u32
pub const MMAP_MAX_ACCESS_RWX: u32
Sourcepub const MAP_SHARED: u32 = 0x00000100
pub const MAP_SHARED: u32 = 0x00000100
Use MAP_SHARED when calling mmap().
§Note
In some cases MAP_SHARED may be set automatically. For example, some dual mapping implementations must
use MAP_SHARED instead of MAP_PRIVATE to ensure that the OS would not apply copy on write on RW page, which
would cause RX page not having the updated content.
Sourcepub const MAPPING_PREFER_TMP: u32 = 0x80000000
pub const MAPPING_PREFER_TMP: u32 = 0x80000000
Not an access flag, only used by alloc_dual_mapping() to override the default allocation strategy to always use
a ‘tmp’ directory instead of “/dev/shm” (on POSIX platforms). Please note that this flag will be ignored if the
operating system allows to allocate an executable memory by a different API than open() or shm_open(). For
example on Linux memfd_create() is preferred and on BSDs shm_open(SHM_ANON, ...) is used if SHM_ANON is
defined.
§Note
This flag can only be used with alloc().
Trait Implementations§
Source§impl BitAnd<u32> for MemoryFlags
impl BitAnd<u32> for MemoryFlags
Source§impl BitAnd for MemoryFlags
impl BitAnd for MemoryFlags
Source§impl BitAndAssign<u32> for MemoryFlags
impl BitAndAssign<u32> for MemoryFlags
Source§fn bitand_assign(&mut self, rhs: u32)
fn bitand_assign(&mut self, rhs: u32)
&= operation. Read moreSource§impl BitAndAssign for MemoryFlags
impl BitAndAssign for MemoryFlags
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&= operation. Read moreSource§impl BitOr<u32> for MemoryFlags
impl BitOr<u32> for MemoryFlags
Source§impl BitOr for MemoryFlags
impl BitOr for MemoryFlags
Source§impl BitOrAssign<u32> for MemoryFlags
impl BitOrAssign<u32> for MemoryFlags
Source§fn bitor_assign(&mut self, rhs: u32)
fn bitor_assign(&mut self, rhs: u32)
|= operation. Read moreSource§impl BitOrAssign for MemoryFlags
impl BitOrAssign for MemoryFlags
Source§fn bitor_assign(&mut self, rhs: Self)
fn bitor_assign(&mut self, rhs: Self)
|= operation. Read moreSource§impl Clone for MemoryFlags
impl Clone for MemoryFlags
Source§fn clone(&self) -> MemoryFlags
fn clone(&self) -> MemoryFlags
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more