Add basic allocator
This commit is contained in:
parent
cc227933c5
commit
ed6f4e98d3
@ -1,23 +1,26 @@
|
||||
use crate::alloc::{GlobalAlloc, Layout, System};
|
||||
use crate::ptr::null_mut;
|
||||
use crate::{
|
||||
alloc::{GlobalAlloc, Layout, System},
|
||||
ptr::null_mut,
|
||||
};
|
||||
|
||||
static mut HEAP: [u8; 16384] = [0u8; 16384];
|
||||
static mut HEAP_USED: usize = 0;
|
||||
|
||||
#[stable(feature = "alloc_system_type", since = "1.28.0")]
|
||||
unsafe impl GlobalAlloc for System {
|
||||
#[inline]
|
||||
unsafe fn alloc(&self, _layout: Layout) -> *mut u8 {
|
||||
null_mut()
|
||||
}
|
||||
|
||||
#[inline]
|
||||
unsafe fn alloc_zeroed(&self, _layout: Layout) -> *mut u8 {
|
||||
null_mut()
|
||||
unsafe fn alloc(&self, layout: Layout) -> *mut u8 {
|
||||
unsafe {
|
||||
if 16384 - HEAP_USED < layout.size() {
|
||||
null_mut()
|
||||
} else {
|
||||
let ptr = &mut HEAP[HEAP_USED] as *mut u8;
|
||||
HEAP_USED += layout.size();
|
||||
ptr
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[inline]
|
||||
unsafe fn dealloc(&self, _ptr: *mut u8, _layout: Layout) {}
|
||||
|
||||
#[inline]
|
||||
unsafe fn realloc(&self, _ptr: *mut u8, _layout: Layout, _new_size: usize) -> *mut u8 {
|
||||
null_mut()
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user