pub struct SecurePolicy;Expand description
Zero-Sized Type (ZST) representing a secure allocation policy with memory poisoning and zero-initialization.
Trait Implementations§
Source§impl AllocPolicy for SecurePolicy
impl AllocPolicy for SecurePolicy
Source§const ENABLE_POISONING: bool = true
const ENABLE_POISONING: bool = true
If true, write poison bytes to memory on allocation and deallocation to
detect heap corruption.
Source§const ZERO_INITIALIZE: bool = true
const ZERO_INITIALIZE: bool = true
If true, zero-initialize all memory allocations.
Source§const RANDOMIZE_ALLOCATION: bool = true
const RANDOMIZE_ALLOCATION: bool = true
If true, randomize the allocation order of blocks in a page.
Source§const POLICY_NAME: &'static str = "secure"
const POLICY_NAME: &'static str = "secure"
Human-readable name for this policy. Zero-cost — inlined by the compiler.
Source§const MITIGATION_FLAGS: u32
const MITIGATION_FLAGS: u32
Combined bitmask of active
mitigations for this
policy.Source§const POISON_FREE_BYTE: u8 = 0xDE
const POISON_FREE_BYTE: u8 = 0xDE
Byte pattern to write into memory when it is freed.
Source§const POISON_ALLOC_BYTE: u8 = 0xAD
const POISON_ALLOC_BYTE: u8 = 0xAD
Byte pattern to write into memory when it is allocated.
Source§const ENABLE_FREE_LIST_ENCRYPTION: bool = false
const ENABLE_FREE_LIST_ENCRYPTION: bool = false
If true, encrypt free list next pointers using the per-segment XOR key.
Source§const DELAY_PAGE_WAKE: bool = false
const DELAY_PAGE_WAKE: bool = false
If true, a full page does not become active until at least
capacity / WAKE_DENOMINATOR blocks are freed from it.Source§const WAKE_DENOMINATOR: u16 = 4
const WAKE_DENOMINATOR: u16 = 4
Denominator for the page-wake hysteresis.
Source§const SEGMENT_POOL_WARM_THRESHOLD: usize = 0
const SEGMENT_POOL_WARM_THRESHOLD: usize = 0
Minimum warm segments kept in the pool after a
purge_lazy call.Source§const GWP_SAMPLE_RATE: u32 = 0
const GWP_SAMPLE_RATE: u32 = 0
Probabilistic guard-page sampling rate (GWP-ASan hook).
0 disables. Inspired by snmalloc 0.7.2 gwp_asan.h.Source§const MAX_ALLOC_SIZE_LIMIT: usize = 0
const MAX_ALLOC_SIZE_LIMIT: usize = 0
Maximum allocation size this policy will serve without a panic/error. Read more
Source§const POLICY_FINGERPRINT: u64 = _
const POLICY_FINGERPRINT: u64 = _
Compile-time configuration fingerprint. Read more
Source§impl Clone for SecurePolicy
impl Clone for SecurePolicy
Source§fn clone(&self) -> SecurePolicy
fn clone(&self) -> SecurePolicy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for SecurePolicy
Source§impl Debug for SecurePolicy
impl Debug for SecurePolicy
Source§impl Default for SecurePolicy
impl Default for SecurePolicy
Source§fn default() -> SecurePolicy
fn default() -> SecurePolicy
Returns the “default value” for a type. Read more
impl Eq for SecurePolicy
Source§impl PartialEq for SecurePolicy
impl PartialEq for SecurePolicy
Source§impl PolicySlotSelection<CudaDeviceBackend> for SecurePolicy
impl PolicySlotSelection<CudaDeviceBackend> for SecurePolicy
Source§fn with_allocator<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaDeviceBackend>) -> R,
) -> Option<R>
fn with_allocator<R>( f: impl FnOnce(&mut ThreadAllocator<CudaDeviceBackend>) -> R, ) -> Option<R>
Runs
f with access to the allocator cache selected for this policy.Source§unsafe fn with_allocator_unguarded<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaDeviceBackend>) -> R,
) -> Option<R>
unsafe fn with_allocator_unguarded<R>( f: impl FnOnce(&mut ThreadAllocator<CudaDeviceBackend>) -> R, ) -> Option<R>
Runs
f with access to the selected policy cache without arming the
re-entrancy gate. Read moreSource§fn get_allocator_ptr() -> *mut c_void
fn get_allocator_ptr() -> *mut c_void
Returns the initialized allocator pointer for this policy’s TLS slot.
Source§fn get_allocator_ptr_raw() -> *mut c_void
fn get_allocator_ptr_raw() -> *mut c_void
Returns the raw allocator pointer for this policy’s TLS slot without
forcing lazy initialization.
Source§impl PolicySlotSelection<CudaGddrBackend> for SecurePolicy
impl PolicySlotSelection<CudaGddrBackend> for SecurePolicy
Source§fn with_allocator<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaGddrBackend>) -> R,
) -> Option<R>
fn with_allocator<R>( f: impl FnOnce(&mut ThreadAllocator<CudaGddrBackend>) -> R, ) -> Option<R>
Runs
f with access to the allocator cache selected for this policy.Source§unsafe fn with_allocator_unguarded<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaGddrBackend>) -> R,
) -> Option<R>
unsafe fn with_allocator_unguarded<R>( f: impl FnOnce(&mut ThreadAllocator<CudaGddrBackend>) -> R, ) -> Option<R>
Runs
f with access to the selected policy cache without arming the
re-entrancy gate. Read moreSource§fn get_allocator_ptr() -> *mut c_void
fn get_allocator_ptr() -> *mut c_void
Returns the initialized allocator pointer for this policy’s TLS slot.
Source§fn get_allocator_ptr_raw() -> *mut c_void
fn get_allocator_ptr_raw() -> *mut c_void
Returns the raw allocator pointer for this policy’s TLS slot without
forcing lazy initialization.
Source§impl PolicySlotSelection<CudaHbmBackend> for SecurePolicy
impl PolicySlotSelection<CudaHbmBackend> for SecurePolicy
Source§fn with_allocator<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaHbmBackend>) -> R,
) -> Option<R>
fn with_allocator<R>( f: impl FnOnce(&mut ThreadAllocator<CudaHbmBackend>) -> R, ) -> Option<R>
Runs
f with access to the allocator cache selected for this policy.Source§unsafe fn with_allocator_unguarded<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaHbmBackend>) -> R,
) -> Option<R>
unsafe fn with_allocator_unguarded<R>( f: impl FnOnce(&mut ThreadAllocator<CudaHbmBackend>) -> R, ) -> Option<R>
Runs
f with access to the selected policy cache without arming the
re-entrancy gate. Read moreSource§fn get_allocator_ptr() -> *mut c_void
fn get_allocator_ptr() -> *mut c_void
Returns the initialized allocator pointer for this policy’s TLS slot.
Source§fn get_allocator_ptr_raw() -> *mut c_void
fn get_allocator_ptr_raw() -> *mut c_void
Returns the raw allocator pointer for this policy’s TLS slot without
forcing lazy initialization.
Source§impl PolicySlotSelection<CudaHostPinnedBackend> for SecurePolicy
impl PolicySlotSelection<CudaHostPinnedBackend> for SecurePolicy
Source§fn with_allocator<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaHostPinnedBackend>) -> R,
) -> Option<R>
fn with_allocator<R>( f: impl FnOnce(&mut ThreadAllocator<CudaHostPinnedBackend>) -> R, ) -> Option<R>
Runs
f with access to the allocator cache selected for this policy.Source§unsafe fn with_allocator_unguarded<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaHostPinnedBackend>) -> R,
) -> Option<R>
unsafe fn with_allocator_unguarded<R>( f: impl FnOnce(&mut ThreadAllocator<CudaHostPinnedBackend>) -> R, ) -> Option<R>
Runs
f with access to the selected policy cache without arming the
re-entrancy gate. Read moreSource§fn get_allocator_ptr() -> *mut c_void
fn get_allocator_ptr() -> *mut c_void
Returns the initialized allocator pointer for this policy’s TLS slot.
Source§fn get_allocator_ptr_raw() -> *mut c_void
fn get_allocator_ptr_raw() -> *mut c_void
Returns the raw allocator pointer for this policy’s TLS slot without
forcing lazy initialization.
Source§impl PolicySlotSelection<CudaUnifiedBackend> for SecurePolicy
impl PolicySlotSelection<CudaUnifiedBackend> for SecurePolicy
Source§fn with_allocator<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaUnifiedBackend>) -> R,
) -> Option<R>
fn with_allocator<R>( f: impl FnOnce(&mut ThreadAllocator<CudaUnifiedBackend>) -> R, ) -> Option<R>
Runs
f with access to the allocator cache selected for this policy.Source§unsafe fn with_allocator_unguarded<R>(
f: impl FnOnce(&mut ThreadAllocator<CudaUnifiedBackend>) -> R,
) -> Option<R>
unsafe fn with_allocator_unguarded<R>( f: impl FnOnce(&mut ThreadAllocator<CudaUnifiedBackend>) -> R, ) -> Option<R>
Runs
f with access to the selected policy cache without arming the
re-entrancy gate. Read moreSource§fn get_allocator_ptr() -> *mut c_void
fn get_allocator_ptr() -> *mut c_void
Returns the initialized allocator pointer for this policy’s TLS slot.
Source§fn get_allocator_ptr_raw() -> *mut c_void
fn get_allocator_ptr_raw() -> *mut c_void
Returns the raw allocator pointer for this policy’s TLS slot without
forcing lazy initialization.
Source§impl PolicySlotSelection<MemoryBackendWrapper> for SecurePolicy
impl PolicySlotSelection<MemoryBackendWrapper> for SecurePolicy
Source§fn with_allocator<R>(
f: impl FnOnce(&mut ThreadAllocator<MemoryBackendWrapper>) -> R,
) -> Option<R>
fn with_allocator<R>( f: impl FnOnce(&mut ThreadAllocator<MemoryBackendWrapper>) -> R, ) -> Option<R>
Runs
f with access to the allocator cache selected for this policy.Source§unsafe fn with_allocator_unguarded<R>(
f: impl FnOnce(&mut ThreadAllocator<MemoryBackendWrapper>) -> R,
) -> Option<R>
unsafe fn with_allocator_unguarded<R>( f: impl FnOnce(&mut ThreadAllocator<MemoryBackendWrapper>) -> R, ) -> Option<R>
Runs
f with access to the selected policy cache without arming the
re-entrancy gate. Read moreSource§fn get_allocator_ptr() -> *mut c_void
fn get_allocator_ptr() -> *mut c_void
Returns the initialized allocator pointer for this policy’s TLS slot.
Source§fn get_allocator_ptr_raw() -> *mut c_void
fn get_allocator_ptr_raw() -> *mut c_void
Returns the raw allocator pointer for this policy’s TLS slot without
forcing lazy initialization.
impl StructuralPartialEq for SecurePolicy
Auto Trait Implementations§
impl Freeze for SecurePolicy
impl RefUnwindSafe for SecurePolicy
impl Send for SecurePolicy
impl Sync for SecurePolicy
impl Unpin for SecurePolicy
impl UnsafeUnpin for SecurePolicy
impl UnwindSafe for SecurePolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more