223 #ifndef ti_sysbios_heaps_HeapMultiBuf__include 224 #define ti_sysbios_heaps_HeapMultiBuf__include 240 #define ti_sysbios_heaps_HeapMultiBuf_long_names 241 #include "HeapMultiBuf_defs.h" 255 #define HeapMultiBuf_A_blockNotFreed "Invalid block address on the free. Failed to free block back to heap." 260 #define HeapMultiBuf_E_size "requested size is too big: handle=0x%x, size=%u" 300 } HeapMultiBuf_AddrPair;
335 } HeapMultiBuf_Module_State;
346 #define ti_sysbios_heaps_HeapMultiBuf_Handle_upCast(handle) ((IHeap_Handle)(handle)) 360 extern void HeapMultiBuf_free(HeapMultiBuf_Handle handle,
void * buf,
size_t size);
455 return ((HeapMultiBuf_Handle)str);
463 #define HeapMultiBuf_module ((HeapMultiBuf_Module_State *) &(HeapMultiBuf_Module_state)) 473 #undef ti_sysbios_heaps_HeapMultiBuf_long_names 474 #include "HeapMultiBuf_defs.h" Definition: HeapMultiBuf.h:262
HeapMultiBuf_Handle HeapMultiBuf_Object_first(void)
return handle of the first HeapMultiBuf on HeapMultiBuf list
bool blockBorrow
Turn block borrowing on (true) or off (false)
Definition: HeapMultiBuf.h:272
Fixed size buffer heap manager.
HeapMultiBuf_Handle HeapMultiBuf_construct(HeapMultiBuf_Struct *obj, const HeapMultiBuf_Params *params, Error_Block *eb)
Construct a HeapMultiBuf heap.
void HeapMultiBuf_destruct(HeapMultiBuf_Struct *obj)
Destruct a HeapMultiBuf heap.
struct HeapMultiBuf_Struct * HeapMultiBuf_Handle
bool blockBorrow
Turn block borrowing on (true) or off (false)
Definition: HeapMultiBuf.h:315
void HeapMultiBuf_getStats(HeapMultiBuf_Handle handle, Memory_Stats *statBuf)
get memory stats for a HeapMultiBuf object
HeapMultiBuf_Struct HeapMultiBuf_Object
Definition: HeapMultiBuf.h:330
int numBufs
Number of memory buffers.
Definition: HeapMultiBuf.h:325
Static and run-time memory manager.
void HeapMultiBuf_Params_init(HeapMultiBuf_Params *prms)
Initialize the HeapMultiBuf_Params structure with default values.
Opaque queue element.
Definition: Queue.h:204
Definition: HeapMultiBuf.h:303
Definition: HeapBuf.h:329
void * HeapMultiBuf_alloc(HeapMultiBuf_Handle handle, size_t size, size_t align, Error_Block *eb)
HeapMultiBuf will return a block that is >= 'size' with an alignment that is >= 'align'. The HeapMultiBuf will attempt to service a request for any size; the specified size does not need to match the configured block sizes of the buffers.
HeapBuf_Handle * bufsBySize
Definition: HeapMultiBuf.h:326
Error block.
Definition: Error.h:152
int numBufs
Number of memory buffers.
Definition: HeapMultiBuf.h:281
IHeap_Object iheap
Definition: HeapMultiBuf.h:304
HeapMultiBuf_Handle HeapMultiBuf_Object_next(HeapMultiBuf_Handle heap)
return handle of the next HeapMultiBuf on HeapMultiBuf list
void HeapMultiBuf_delete(HeapMultiBuf_Handle *handle)
Delete a HeapMultiBuf heap.
HeapMultiBuf_AddrPair * bufsByAddr
Definition: HeapMultiBuf.h:327
Queue_Elem objElem
Definition: HeapMultiBuf.h:305
Interface to heap functions.
HeapBuf_Params * bufParams
Config parameters for each buffer.
Definition: HeapMultiBuf.h:293
HeapMultiBuf_Handle HeapMultiBuf_create(const HeapMultiBuf_Params *params, Error_Block *eb)
Create a HeapMultiBuf heap.
Memory heap statistics.
Definition: Memory.h:94
int numHeapBufs
Definition: HeapMultiBuf.h:316
bool HeapMultiBuf_isBlocking(HeapMultiBuf_Handle handle)
This function always returns false since the alloc/free never block on a resource.
void HeapMultiBuf_free(HeapMultiBuf_Handle handle, void *buf, size_t size)
HeapMultiBuf ignores the 'size' parameter to free. It determines the correct buffer to free the block...
Definition: HeapBuf.h:253