13 STDAPI
void* kmalloc_a(uint32_t sz);
16 STDAPI
void* kmalloc_p(uint32_t sz, uint32_t* phys);
19 STDAPI
void* kmalloc_ap(uint32_t sz, uint32_t* phys);
23 void* kmalloc_real(uint32_t sz);
24 void kmalloc_track_int(
char* file,
int line, uint32_t
size);
25 #define kmalloc_track(bytes) ({ kmalloc_track_int(__FILE__, __LINE__, bytes); kmalloc_real(bytes); }) 26 #define kmalloc(bytes) kmalloc_track(bytes) 28 #define KHEAP_START 0xC0000000 29 #define KHEAP_INITIAL_SIZE 0x6000000 30 #define KHEAP_MAX_ADDRESS 0xDFFFF000 33 #define HEAP_MAGIC 0xCAFEBABE 34 #define HEAP_MIN_SIZE 0x70000 35 #define MIN_BLOCK_SIZE 0x10 47 uint32_t start_address;
55 STDAPI
heap_t* create_heap(uint32_t start, uint32_t end, uint32_t max, uint8_t supervisor, uint8_t readonly);
58 STDAPI
void* alloc(uint32_t
size, uint8_t page_align,
heap_t* heap);
61 STDAPI
void free(
void* p,
heap_t* heap);
64 STDAPI
void kfree(
void* p);
67 void expand(uint32_t new_size,
heap_t* heap);
76 void heap_print(
int count);
85 void heap_verify_integrity();