heap.h
Go to the documentation of this file.00001
00043 #ifndef STRUCT_HEAP_H
00044 #define STRUCT_HEAP_H
00045
00046 #include "cfg/cfg_heap.h"
00047 #include <cfg/compiler.h>
00048
00049 struct _MemChunk;
00050
00052 struct Heap
00053 {
00054 struct _MemChunk *FreeList;
00055 };
00056
00057
00059 void heap_init(struct Heap* heap, void* memory, size_t size);
00060
00062 void *heap_allocmem(struct Heap* heap, size_t size);
00063
00065 void heap_freemem(struct Heap* heap, void *mem, size_t size);
00066
00067
00068 #define HNEW(heap, type) \
00069 (type*)heap_allocmem(heap, sizeof(type))
00070
00071 #define HNEWVEC(heap, type, nelem) \
00072 (type*)heap_allocmem(heap, sizeof(type) * (nelem))
00073
00074 #define HDELETE(heap, type, mem) \
00075 heap_freemem(heap, mem, sizeof(type))
00076
00077 #define HDELETEVEC(heap, type, nelem, mem) \
00078 heap_freemem(heap, mem, sizeof(type) * (nelem))
00079
00080
00081 #if CONFIG_HEAP_MALLOC
00082
00083 void *heap_malloc(struct Heap* heap, size_t size);
00084 void *heap_calloc(struct Heap* heap, size_t size);
00085 void heap_free(struct Heap* heap, void * mem);
00086
00087 #endif
00088
00089 #endif