
Go to the source code of this file.
Data Structures | |
| struct | ctl_heap |
| A fixed heap type. More... | |
Defines | |
| #define | ctl_heap_init(heap, buff, size) |
| Initialize/Reset Heap. | |
| #define | ctl_heap_auto(heapname, size) |
| Declare and initialize a global or auto heap. | |
| #define | ctl_heap_size(heap) ((heap)->end - (heap)->begin) |
| Get total size of heap. | |
| #define | ctl_heap_used(heap) ((heap)->curr - (heap)->begin) |
| Get used portion of heap. | |
| #define | ctl_heap_remain(heap) ((heap)->end - (heap)->curr) |
| Get free portion of heap. | |
| #define | ctl_heap_alloc(heap, ptr, size) |
| Consume some heap. | |
| #define | ctl_heap_free(heap, ptr) |
| Free some heap; anything past this pointer in heap is also freed. | |
Definition in file heap.h.
| #define ctl_heap_alloc | ( | heap, | |||
| ptr, | |||||
| size | ) |
Value:
{\
ctl_heap* pheap = (heap);\
size_t size_aligned = ((size_t)(size) + 7) & ~7;\
if( pheap->curr + size_aligned <= pheap->end )\
{ /* Enough heap left */\
*((void**)&(ptr)) = pheap->curr;\
pheap->curr += size_aligned;\
}\
else\
{\
throwassert("Not enough heap left");\
(ptr) = NULL;\
}\
}
| heap | Pointer to heap | |
| ptr | Pointer to receive memory pointer; NULL if there's not enough room | |
| size | Amount of heap to allocate to pointer |
| #define ctl_heap_auto | ( | heapname, | |||
| size | ) |
| #define ctl_heap_free | ( | heap, | |||
| ptr | ) |
Value:
{\
ctl_heap* pheap = (heap);\
void** pptr = &(ptr);\
if( *pptr >= pheap->begin && *pptr < pheap->end )\
{ /* Good heap pointer */\
pheap->curr = (uint8*)*pptr;\
}\
else\
{\
throwassert("Bad heap pointer");\
}\
*pptr = NULL;\
}
| heap | Pointer to heap | |
| ptr | Pointer to set heap back to; will be set to NULL |
| #define ctl_heap_init | ( | heap, | |||
| buff, | |||||
| size | ) |
Value:
{\
(heap)->begin = (heap)->curr = (uint8*)(buff);\
(heap)->end = (heap)->begin + (size);\
}
| heap | Pointer to heap | |
| buff | Heap buffer memory to manage | |
| size | Size of buffer memory |
Definition at line 26 of file heap.h.
Referenced by Socket_Customize().
| #define ctl_heap_remain | ( | heap | ) | ((heap)->end - (heap)->curr) |
| #define ctl_heap_size | ( | heap | ) | ((heap)->end - (heap)->begin) |
| #define ctl_heap_used | ( | heap | ) | ((heap)->curr - (heap)->begin) |
1.5.6