Struct embedded_alloc::Heap
source · pub struct Heap { /* private fields */ }
Implementations§
source§impl Heap
impl Heap
sourcepub const fn empty() -> Heap
pub const fn empty() -> Heap
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
start_addr
will be the smallest address used. -
The largest address used is
start_addr + size - 1
, so ifstart_addr
is0x1000
andsize
is0x30000
then the allocator won’t use memory at addresses0x31000
and larger.
Safety
Obey these or Bad Stuff will happen.
- This function must be called exactly ONCE.
size > 0
Trait Implementations§
source§impl GlobalAlloc for Heap
impl GlobalAlloc for Heap
source§unsafe fn alloc(&self, layout: Layout) -> *mut u8
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocate memory as described by the given
layout
. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for Heap
impl Send for Heap
impl Sync for Heap
impl Unpin for Heap
impl UnwindSafe for Heap
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