pub struct CortexMHeap { /* private fields */ }
Implementations§
Source§impl CortexMHeap
impl CortexMHeap
Sourcepub const fn empty() -> CortexMHeap
pub const fn empty() -> CortexMHeap
Crate a new UNINITIALIZED heap allocator
You must initialize this heap using the
init
method before using the allocator.
Sourcepub unsafe fn init(&self, start_addr: usize, size: usize)
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_addr
must 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
.
§Safety
Obey these or Bad Stuff will happen.
- This function must be called exactly ONCE.
size > 0
Trait Implementations§
Source§impl GlobalAlloc for CortexMHeap
impl GlobalAlloc for CortexMHeap
Source§unsafe fn alloc(&self, layout: Layout) -> *mut u8
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocates memory as described by the given
layout
. Read moreAuto Trait Implementations§
impl !Freeze for CortexMHeap
impl !RefUnwindSafe for CortexMHeap
impl Send for CortexMHeap
impl Sync for CortexMHeap
impl Unpin for CortexMHeap
impl UnwindSafe for CortexMHeap
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