|
Turnstone Operating System
|
a simple heap implementation More...
#include <memory.h>#include <systeminfo.h>#include <cpu.h>#include <cpu/task.h>#include <logging.h>#include <cpu/sync.h>#include <linker.h>#include <utils.h>Classes | |
| struct | heapinfo_t |
| heap info struct More... | |
| struct | heapmetainfo_t |
| heap info struct More... | |
| struct | heapmetainfo_t::fast_classes_t |
Macros | |
| #define | HEAP_INFO_FLAG_STARTEND (1 << 0) |
| #define | HEAP_INFO_FLAG_USED (1 << 1) |
| #define | HEAP_INFO_FLAG_NOTUSED (0 << 1) |
| #define | HEAP_INFO_FLAG_HEAP (1 << 4) |
| #define | HEAP_INFO_FLAG_HEAP_INITED (HEAP_INFO_FLAG_HEAP | HEAP_INFO_FLAG_USED) |
| #define | HEAP_INFO_MAGIC (0xaa55) |
| #define | HEAP_INFO_PADDING (0xaa55aa55) |
| #define | HEAP_HEADER HEAP_INFO_PADDING |
Typedefs | |
| typedef struct heapinfo_t | heapinfo_t |
| short hand for struct | |
| typedef struct heapmetainfo_t | heapmetainfo_t |
| short hand for struct | |
Functions | |
| void | memory_heap_backtrace (void) |
| MODULE ("turnstone.lib.memory") | |
| void * | memory_simple_malloc_ext (memory_heap_t *heap, size_t size, size_t align) |
| simple heap malloc implementation | |
| int8_t | memory_simple_free (memory_heap_t *heap, void *address) |
| simple heap free implementation | |
| void | memory_simple_stat (memory_heap_t *heap, memory_heap_stat_t *stat) |
| memory_heap_t * | memory_create_heap_simple (size_t start, size_t end) |
| creates simple heap | |
| static void | memory_simple_insert_sorted (heapmetainfo_t *heap, int8_t tofull, heapinfo_t *item) |
a simple heap implementation
This work is licensed under TURNSTONE OS Public License. Please read and understand latest version of Licence.
| #define HEAP_HEADER HEAP_INFO_PADDING |
heap header
| #define HEAP_INFO_FLAG_HEAP (1 << 4) |
heap metadata flag
| #define HEAP_INFO_FLAG_HEAP_INITED (HEAP_INFO_FLAG_HEAP | HEAP_INFO_FLAG_USED) |
heap initilized flag
| #define HEAP_INFO_FLAG_NOTUSED (0 << 1) |
unused heap hole flag
| #define HEAP_INFO_FLAG_STARTEND (1 << 0) |
heap flag for heap start and end hi
| #define HEAP_INFO_FLAG_USED (1 << 1) |
used heap hole flag
| #define HEAP_INFO_MAGIC (0xaa55) |
heap magic for protection
| #define HEAP_INFO_PADDING (0xaa55aa55) |
heap padding for protection
| memory_heap_t * memory_create_heap_simple | ( | size_t | start, |
| size_t | end ) |
creates simple heap
| [in] | start | start address of heap |
| [in] | end | end address of heap |
| int8_t memory_simple_free | ( | memory_heap_t * | heap, |
| void * | address ) |
simple heap free implementation
| [in] | heap | simple heap (itself) |
| [in] | address | address to free |
| void * memory_simple_malloc_ext | ( | memory_heap_t * | heap, |
| size_t | size, | ||
| size_t | align ) |
simple heap malloc implementation
| [in] | heap | simple heap (itself) |
| [in] | size | size of memory |
| [in] | align | align value |