Public Member Functions | |
virtual net_stack_mem_buf_t * | alloc_heap (uint32_t size, uint32_t align)=0 |
Allocates memory buffer from the heap. More... | |
virtual net_stack_mem_buf_t * | alloc_pool (uint32_t size, uint32_t align)=0 |
Allocates memory buffer chain from a pool. More... | |
virtual uint32_t | get_pool_alloc_unit (uint32_t align) const =0 |
Get memory buffer pool allocation unit. More... | |
virtual void | free (net_stack_mem_buf_t *buf)=0 |
Free memory buffer chain. More... | |
virtual uint32_t | get_total_len (const net_stack_mem_buf_t *buf) const =0 |
Return total length of a memory buffer chain. More... | |
virtual void | copy (net_stack_mem_buf_t *to_buf, const net_stack_mem_buf_t *from_buf)=0 |
Copy a memory buffer chain. More... | |
virtual void | copy_to_buf (net_stack_mem_buf_t *to_buf, const void *ptr, uint32_t len) |
Copy to a memory buffer chain. More... | |
virtual uint32_t | copy_from_buf (void *ptr, uint32_t len, const net_stack_mem_buf_t *from_buf) const |
Copy from a memory buffer chain. More... | |
virtual void | cat (net_stack_mem_buf_t *to_buf, net_stack_mem_buf_t *cat_buf)=0 |
Concatenate two memory buffer chains. More... | |
virtual net_stack_mem_buf_t * | get_next (const net_stack_mem_buf_t *buf) const =0 |
Returns the next buffer. More... | |
virtual void * | get_ptr (const net_stack_mem_buf_t *buf) const =0 |
Return pointer to the payload of the buffer. More... | |
virtual uint32_t | get_len (const net_stack_mem_buf_t *buf) const =0 |
Return payload size of the buffer. More... | |
virtual void | set_len (net_stack_mem_buf_t *buf, uint32_t len)=0 |
Sets the payload size of the buffer. More... | |
Definition at line 45 of file EMACMemoryManager.h.
|
pure virtualinherited |
Allocates memory buffer from the heap.
Memory buffer allocated from heap is always contiguous and can be arbitrary size.
size | Size of the memory to allocate in bytes |
align | Memory alignment requirement in bytes |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Allocates memory buffer chain from a pool.
Memory allocated from pool is contiguous if size is equal or less than (aligned) allocation unit, otherwise may be chained. Will typically come from fixed-size packet pool memory.
size | Total size of the memory to allocate in bytes |
align | Memory alignment requirement for each buffer in bytes |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Concatenate two memory buffer chains.
Concatenates buffer chain to end of the other buffer chain. Concatenated-to buffer total length is adjusted accordingly. cat_buf must point to the start of a the chain. After concatenation to_buf's chain now owns those buffers, and they will be freed when the to_buf chain is freed.
to_buf | Memory buffer chain to concatenate to |
cat_buf | Memory buffer chain to concatenate |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Copy a memory buffer chain.
Copies data from one buffer chain to another. Copy operation does not adjust the lengths of the copied-to memory buffer chain, so chain total lengths must be the same.
to_buf | Memory buffer chain to copy to |
from_buf | Memory buffer chain to copy from |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
virtualinherited |
Copy from a memory buffer chain.
Copies data from a memory buffer chain.
len | Data length |
ptr | Pointer to data |
from_buf | Memory buffer chain to copy from |
Reimplemented in LWIPMemoryManager.
|
virtualinherited |
Copy to a memory buffer chain.
Copies data to a buffer chain. Copy operation does not adjust the lengths of the copied-to memory buffer chain, so chain total length must match the copied length.
to_buf | Memory buffer chain to copy to |
ptr | Pointer to data |
len | Data length |
Reimplemented in LWIPMemoryManager.
|
pure virtualinherited |
Free memory buffer chain.
Frees all buffers from the chained list.
buf | Memory buffer chain to be freed. |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Return payload size of the buffer.
buf | Memory buffer |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Returns the next buffer.
Returns the next buffer from the memory buffer chain.
buf | Memory buffer |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Get memory buffer pool allocation unit.
Returns the maximum size of contiguous memory that can be allocated from a pool.
align | Memory alignment requirement in bytes |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Return pointer to the payload of the buffer.
buf | Memory buffer |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Return total length of a memory buffer chain.
Returns a total length of this buffer and any following buffers in the chain.
buf | Memory buffer chain |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.
|
pure virtualinherited |
Sets the payload size of the buffer.
The allocated payload size will not change. It is not permitted to change the length of a buffer that is not the first (or only) in a chain.
buf | Memory buffer |
len | Payload size, must be less or equal to the allocated size |
Implemented in EmacTestMemoryManager, LWIPMemoryManager, and NanostackMemoryManager.