MicrOS
heap.h
Go to the documentation of this file.
1 #ifndef HEAP_H
2 #define HEAP_H
3 
4 #define ENTRY_HEADER_SIZE 13
5 
6 #include <stdint.h>
7 #include "heap_entry.h"
9 
10 void *heap_kernel_alloc(uint32_t size, uint32_t align);
11 void *heap_user_alloc(uint32_t size, uint32_t align);
12 void *heap_alloc(uint32_t size, uint32_t align, bool supervisor);
13 
15 heap_entry *heap_user_dealloc(void *ptr);
16 heap_entry *heap_dealloc(void *ptr, bool supervisor);
17 
18 void *heap_kernel_realloc(void *ptr, uint32_t size, uint32_t align);
19 void *heap_user_realloc(void *ptr, uint32_t size, uint32_t align);
20 void *heap_realloc(void *ptr, uint32_t size, uint32_t align, bool supervisor);
21 
23 
26 
27 void heap_set_kernel_heap(void *heap_address);
28 void heap_set_user_heap(void *heap_address);
29 
31 void heap_init_user_heap();
32 void heap_init_heap(bool supervisor);
33 
34 void heap_kernel_dump();
35 void heap_user_dump();
36 void heap_dump(bool supervisor);
37 
40 bool heap_verify_integrity(bool supervisor);
41 
42 void heap_check_entries();
43 
44 #endif
Definition: heap_entry.h:6
void * heap_realloc(void *ptr, uint32_t size, uint32_t align, bool supervisor)
Definition: heap.c:168
void heap_init_user_heap()
Definition: heap.c:208
void heap_check_entries()
Definition: heap.c:321
void heap_kernel_dump()
Definition: heap.c:229
void heap_dump(bool supervisor)
Definition: heap.c:239
void * heap_kernel_alloc(uint32_t size, uint32_t align)
Definition: heap.c:9
void heap_init_heap(bool supervisor)
Definition: heap.c:213
void * heap_user_realloc(void *ptr, uint32_t size, uint32_t align)
Definition: heap.c:157
void heap_user_dump()
Definition: heap.c:234
void heap_init_kernel_heap()
Definition: heap.c:203
bool heap_user_verify_integrity()
Definition: heap.c:269
void * heap_alloc(uint32_t size, uint32_t align, bool supervisor)
Definition: heap.c:19
void * heap_kernel_realloc(void *ptr, uint32_t size, uint32_t align)
Definition: heap.c:152
void * heap_user_alloc(uint32_t size, uint32_t align)
Definition: heap.c:14
heap_entry * heap_kernel_dealloc(void *ptr)
Definition: heap.c:104
bool heap_kernel_verify_integrity()
Definition: heap.c:264
void heap_set_user_heap(void *heap_address)
Definition: heap.c:197
void heap_set_kernel_heap(void *heap_address)
Definition: heap.c:191
uint32_t heap_get_object_size(void *ptr)
Definition: heap.c:162
heap_entry * heap_get_kernel_heap()
Definition: heap.c:181
heap_entry * heap_user_dealloc(void *ptr)
Definition: heap.c:109
heap_entry * heap_dealloc(void *ptr, bool supervisor)
Definition: heap.c:114
heap_entry * heap_get_user_heap()
Definition: heap.c:186
size_t uint32_t
Unsigned integral type.
Definition: string.h:8
bool heap_verify_integrity(bool supervisor)
Definition: heap.c:274