pub struct TlsfHeap { /* private fields */ }
Expand description
A two-Level segregated fit heap.
Implementations§
Source§impl Heap
impl Heap
Sourcepub const fn empty() -> Heap
pub const fn empty() -> Heap
Create 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
Allocates memory as described by the given
layout
. Read moreAuto Trait Implementations§
impl !Freeze for Heap
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