Mistake on this page?
Report an issue in GitHub or email us
Public Member Functions
EmacTestMemoryManager Class Reference
Inheritance diagram for EmacTestMemoryManager:
EMACMemoryManager NetStackMemoryManager

Public Member Functions

 EmacTestMemoryManager ()
 Creates emac test memory manager. More...
 
virtual emac_mem_buf_t * alloc_heap (uint32_t size, uint32_t align)
 Allocates memory buffer from the heap. More...
 
emac_mem_buf_t * alloc_heap (uint32_t size, uint32_t align, uint8_t opt)
 Allocates memory buffer from the heap. More...
 
virtual emac_mem_buf_t * alloc_pool (uint32_t size, uint32_t align)
 Allocates memory buffer chain from a pool. More...
 
emac_mem_buf_t * alloc_pool (uint32_t size, uint32_t align, uint8_t opt)
 Allocates memory buffer chain from a pool. More...
 
virtual uint32_t get_pool_alloc_unit (uint32_t align) const
 Get memory buffer pool allocation unit. More...
 
virtual void free (emac_mem_buf_t *buf)
 Free memory buffer chain. More...
 
virtual uint32_t get_total_len (const emac_mem_buf_t *buf) const
 Return total length of a memory buffer chain. More...
 
virtual void copy (emac_mem_buf_t *to_buf, const emac_mem_buf_t *from_buf)
 Copy a memory buffer chain. More...
 
virtual void cat (emac_mem_buf_t *to_buf, emac_mem_buf_t *cat_buf)
 Concatenate two memory buffer chains. More...
 
virtual emac_mem_buf_t * get_next (const emac_mem_buf_t *buf) const
 Returns the next buffer. More...
 
virtual void * get_ptr (const emac_mem_buf_t *buf) const
 Return pointer to the payload of the buffer. More...
 
virtual uint32_t get_len (const emac_mem_buf_t *buf) const
 Return payload size of the buffer. More...
 
virtual void set_len (emac_mem_buf_t *buf, uint32_t len)
 Sets the payload size of the buffer. More...
 
virtual void set_alloc_unit (uint32_t alloc_unit)
 Sets memory buffer pool allocation unit. More...
 
void set_memory_available (bool memory)
 Sets whether memory is available. More...
 
void get_memory_statistics (int *buffers, int *memory)
 Gets memory statistics. 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...
 

Detailed Description

Definition at line 37 of file emac_TestMemoryManager.h.

Constructor & Destructor Documentation

Creates emac test memory manager.

Member Function Documentation

virtual emac_mem_buf_t* alloc_heap ( uint32_t  size,
uint32_t  align 
)
virtual

Allocates memory buffer from the heap.

Memory buffer allocated from heap is always contiguous and can be arbitrary size.

Parameters
sizeSize of the memory to allocate in bytes
alignMemory alignment requirement in bytes
Returns
Allocated memory buffer, or NULL in case of error

Implements NetStackMemoryManager.

emac_mem_buf_t* alloc_heap ( uint32_t  size,
uint32_t  align,
uint8_t  opt 
)

Allocates memory buffer from the heap.

Memory buffer allocated from heap is always contiguous and can be arbitrary size.

Parameters
sizeSize of the memory to allocate in bytes
alignMemory alignment requirement in bytes
optOptions
Returns
Allocated memory buffer, or NULL in case of error
virtual emac_mem_buf_t* alloc_pool ( uint32_t  size,
uint32_t  align 
)
virtual

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.

Parameters
sizeTotal size of the memory to allocate in bytes
alignMemory alignment requirement for each buffer in bytes
Returns
Allocated memory buffer chain, or NULL in case of error

Implements NetStackMemoryManager.

emac_mem_buf_t* alloc_pool ( uint32_t  size,
uint32_t  align,
uint8_t  opt 
)

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.

Parameters
sizeTotal size of the memory to allocate in bytes
alignMemory alignment requirement for each buffer in bytes
optOptions
Returns
Allocated memory buffer chain, or NULL in case of error
virtual void cat ( emac_mem_buf_t *  to_buf,
emac_mem_buf_t *  cat_buf 
)
virtual

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.

Parameters
to_bufMemory buffer chain to concatenate to
cat_bufMemory buffer chain to concatenate

Implements NetStackMemoryManager.

virtual void copy ( emac_mem_buf_t *  to_buf,
const emac_mem_buf_t *  from_buf 
)
virtual

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.

Parameters
to_bufMemory buffer chain to copy to
from_bufMemory buffer chain to copy from

Implements NetStackMemoryManager.

virtual uint32_t copy_from_buf ( void *  ptr,
uint32_t  len,
const net_stack_mem_buf_t *  from_buf 
) const
virtualinherited

Copy from a memory buffer chain.

Copies data from a memory buffer chain.

Parameters
lenData length
ptrPointer to data
from_bufMemory buffer chain to copy from
Returns
Length of the data that was copied
virtual void copy_to_buf ( net_stack_mem_buf_t *  to_buf,
const void *  ptr,
uint32_t  len 
)
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.

Parameters
to_bufMemory buffer chain to copy to
ptrPointer to data
lenData length
virtual void free ( emac_mem_buf_t *  buf)
virtual

Free memory buffer chain.

If memory buffer is chained must point to the start of the chain. Frees all buffers from the chained list.

Parameters
bufMemory buffer chain to be freed.

Implements NetStackMemoryManager.

virtual uint32_t get_len ( const emac_mem_buf_t *  buf) const
virtual

Return payload size of the buffer.

Parameters
bufMemory buffer
Returns
Size in bytes

Implements NetStackMemoryManager.

void get_memory_statistics ( int *  buffers,
int *  memory 
)

Gets memory statistics.

Gets memory usage statistics

Parameters
buffersNumber of buffers that are reserved
memoryReserved memory in bytes
virtual emac_mem_buf_t* get_next ( const emac_mem_buf_t *  buf) const
virtual

Returns the next buffer.

Returns the next buffer from the memory buffer chain.

Parameters
bufMemory buffer
Returns
The next memory buffer, or NULL if last

Implements NetStackMemoryManager.

virtual uint32_t get_pool_alloc_unit ( uint32_t  align) const
virtual

Get memory buffer pool allocation unit.

Returns the maximum size of contiguous memory that can be allocated from a pool.

Parameters
alignMemory alignment requirement in bytes
Returns
Contiguous memory size

Implements NetStackMemoryManager.

virtual void* get_ptr ( const emac_mem_buf_t *  buf) const
virtual

Return pointer to the payload of the buffer.

Parameters
bufMemory buffer
Returns
Pointer to the payload

Implements NetStackMemoryManager.

virtual uint32_t get_total_len ( const emac_mem_buf_t *  buf) const
virtual

Return total length of a memory buffer chain.

Returns a total length of this buffer and any following buffers in the chain.

Parameters
bufMemory buffer chain
Returns
Total length in bytes

Implements NetStackMemoryManager.

virtual void set_alloc_unit ( uint32_t  alloc_unit)
virtual

Sets memory buffer pool allocation unit.

Sets the maximum size of contiguous memory that can be allocated from a pool.

Parameters
alloc_unitContiguous memory size
virtual void set_len ( emac_mem_buf_t *  buf,
uint32_t  len 
)
virtual

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.

Parameters
bufMemory buffer
lenPayload size, must be less or equal allocated size

Implements NetStackMemoryManager.

void set_memory_available ( bool  memory)

Sets whether memory is available.

Can be used to disable memory allocation request from emac.

Parameters
memoryTrue if memory is available
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.