Struct alloc_cortex_m::CortexMHeap [−][src]
pub struct CortexMHeap { /* fields omitted */ }Methods
impl CortexMHeap[src]
impl CortexMHeappub const fn empty() -> CortexMHeap[src]
pub const fn empty() -> CortexMHeapCrate a new UNINITIALIZED heap allocator
You must initialize this heap using the
init method before using the allocator.
pub unsafe fn init(&self, start_addr: usize, size: usize)[src]
pub unsafe fn init(&self, start_addr: usize, size: usize)Initializes the heap
This function must be called BEFORE you run any code that makes use of the allocator.
start_addr is the address where the heap will be located.
size is the size of the heap in bytes.
Note that:
-
The heap grows "upwards", towards larger addresses. Thus
end_addrmust be larger thanstart_addr -
The size of the heap is
(end_addr as usize) - (start_addr as usize). The allocator won't use the byte atend_addr.
Unsafety
Obey these or Bad Stuff will happen.
- This function must be called exactly ONCE.
size > 0
Trait Implementations
impl GlobalAlloc for CortexMHeap[src]
impl GlobalAlloc for CortexMHeapunsafe fn alloc(&self, layout: Layout) -> *mut Opaque[src]
unsafe fn alloc(&self, layout: Layout) -> *mut Opaque🔬 This is a nightly-only experimental API. (allocator_api)
the precise API and guarantees it provides may be tweaked slightly, especially to possibly take into account the types being stored to make room for a future tracing garbage collector
Allocate memory as described by the given layout. Read more
unsafe fn dealloc(&self, ptr: *mut Opaque, layout: Layout)[src]
unsafe fn dealloc(&self, ptr: *mut Opaque, layout: Layout)🔬 This is a nightly-only experimental API. (allocator_api)
the precise API and guarantees it provides may be tweaked slightly, especially to possibly take into account the types being stored to make room for a future tracing garbage collector
Deallocate the block of memory at the given ptr pointer with the given layout. Read more
unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut Opaque[src]
unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut Opaque🔬 This is a nightly-only experimental API. (allocator_api)
the precise API and guarantees it provides may be tweaked slightly, especially to possibly take into account the types being stored to make room for a future tracing garbage collector
unsafe fn realloc(
&self,
ptr: *mut Opaque,
layout: Layout,
new_size: usize
) -> *mut Opaque[src]
unsafe fn realloc(
&self,
ptr: *mut Opaque,
layout: Layout,
new_size: usize
) -> *mut Opaque🔬 This is a nightly-only experimental API. (allocator_api)
the precise API and guarantees it provides may be tweaked slightly, especially to possibly take into account the types being stored to make room for a future tracing garbage collector
Shink or grow a block of memory to the given new_size. The block is described by the given ptr pointer and layout. Read more
Auto Trait Implementations
impl Send for CortexMHeap
impl Send for CortexMHeapimpl Sync for CortexMHeap
impl Sync for CortexMHeap