CMSIS-RTOS2  Version 2.1.2
Real-Time Operating System: API and RTX Reference Implementation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Memory Pool Functions

Events generated by memory pool functions. More...

Functions

void EvrRtxMemoryPoolError (osMemoryPoolId_t mp_id, int32_t status)
 Event on memory pool error (Error) More...
 
void EvrRtxMemoryPoolNew (uint32_t block_count, uint32_t block_size, const osMemoryPoolAttr_t *attr)
 Event on memory pool create and initialize (API) More...
 
void EvrRtxMemoryPoolCreated (osMemoryPoolId_t mp_id, const char *name)
 Event on successful memory pool create (Op) More...
 
void EvrRtxMemoryPoolGetName (osMemoryPoolId_t mp_id, const char *name)
 Event on memory pool name retrieve (API) More...
 
void EvrRtxMemoryPoolAlloc (osMemoryPoolId_t mp_id, uint32_t timeout)
 Event on memory pool allocation (API) More...
 
void EvrRtxMemoryPoolAllocPending (osMemoryPoolId_t mp_id, uint32_t timeout)
 Event on pending memory pool allocation (Op) More...
 
void EvrRtxMemoryPoolAllocTimeout (osMemoryPoolId_t mp_id)
 Event on memory pool allocation timeout (Op) More...
 
void EvrRtxMemoryPoolAllocated (osMemoryPoolId_t mp_id, void *block)
 Event on successful memory pool allocation (Op) More...
 
void EvrRtxMemoryPoolAllocFailed (osMemoryPoolId_t mp_id)
 Event on unsuccessful memory pool allocation (Op) More...
 
void EvrRtxMemoryPoolFree (osMemoryPoolId_t mp_id, void *block)
 Event on memory pool free (API) More...
 
void EvrRtxMemoryPoolDeallocated (osMemoryPoolId_t mp_id, void *block)
 Event on successful memory pool free (Op) More...
 
void EvrRtxMemoryPoolFreeFailed (osMemoryPoolId_t mp_id, void *block)
 Event on unsuccessful memory pool free (Op) More...
 
void EvrRtxMemoryPoolGetCapacity (osMemoryPoolId_t mp_id, uint32_t capacity)
 Event on memory pool capacity retrieve (API) More...
 
void EvrRtxMemoryPoolGetBlockSize (osMemoryPoolId_t mp_id, uint32_t block_size)
 Event on memory pool block size retrieve (API) More...
 
void EvrRtxMemoryPoolGetCount (osMemoryPoolId_t mp_id, uint32_t count)
 Event on used memory pool blocks retrieve (API) More...
 
void EvrRtxMemoryPoolGetSpace (osMemoryPoolId_t mp_id, uint32_t space)
 Event on available memory pool blocks retrieve (API) More...
 
void EvrRtxMemoryPoolDelete (osMemoryPoolId_t mp_id)
 Event on memory pool delete (API) More...
 
void EvrRtxMemoryPoolDestroyed (osMemoryPoolId_t mp_id)
 Event on successful memory pool delete (Op) More...
 

Description

Function Documentation

void EvrRtxMemoryPoolError ( osMemoryPoolId_t  mp_id,
int32_t  status 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew or NULL when ID is unknown.
[in]statusextended execution status.

The event MemoryPoolError is generated when Memory Pool routines complete their execution due to an error.

The status parameter indicates the execution status and can be one of the osStatus_t codes or one of the extended execution status codes which are summarized in the table below.

Extended Status Code Description
osRtxErrorKernelNotReady Kernel scheduler is not in Ready state.
osRtxErrorKernelNotRunning Kernel scheduler is not executing - there is no running thread.
osRtxErrorInvalidControlBlock Object control block with invalid alignment or size was specified.
osRtxErrorInvalidDataMemory Object data memory with invalid alignment or size was specified.
osRtxErrorInvalidThreadStack Thread stack memory with invalid alignment or size was specified.
osRtxErrorInvalidPriority Invalid thread priority was specified.
osRtxErrorThreadNotJoinable Specified thread is not joinable.
osRtxErrorMutexNotOwned Specified mutex is not owned by the current running thread.
osRtxErrorMutexNotLocked Specified mutex is not locked.
osRtxErrorMutexLockLimit Maximum number of recursive mutex locks reached.
osRtxErrorSemaphoreCountLimit Semaphore count limit reached.
osRtxErrorTZ_InitContext_S Secure context memory system initialization failed.
osRtxErrorTZ_AllocContext_S Secure context memory allocation failed.
osRtxErrorTZ_FreeContext_S Secure context memory deallocation failed.
osRtxErrorTZ_LoadContext_S Secure context load failed.
osRtxErrorTZ_SaveContext_S Secure context save failed.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • status : execution status code.
void EvrRtxMemoryPoolNew ( uint32_t  block_count,
uint32_t  block_size,
const osMemoryPoolAttr_t attr 
)
Parameters
[in]block_countmaximum number of memory blocks in memory pool.
[in]block_sizememory block size in bytes.
[in]attrmemory pool attributes; NULL: default values.

The event MemoryPoolNew is generated when the function osMemoryPoolNew is called.

Value in the Event Recorder shows:

  • block_count : maximum number of memory blocks in memory pool.
  • block_size : memory block size in bytes.
  • attr : memory address of Memory Pool attributes or 0 when they are not specified.

In case when memory pool attributes are provided in the API call they are also detailed in the Event Recorder.

void EvrRtxMemoryPoolCreated ( osMemoryPoolId_t  mp_id,
const char *  name 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]namepointer to memory pool object name.

The event MemoryPoolCreated is generated when the function osMemoryPoolNew successfully creates a memory pool object.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
void EvrRtxMemoryPoolGetName ( osMemoryPoolId_t  mp_id,
const char *  name 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]namepointer to memory pool object name.

The event MemoryPoolGetName is generated when the function osMemoryPoolGetName is called and its execution result is known.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • name : retrieved memory address of name string (0 in case of a failure).
void EvrRtxMemoryPoolAlloc ( osMemoryPoolId_t  mp_id,
uint32_t  timeout 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event MemoryPoolAlloc is generated when the function osMemoryPoolAlloc is called.

Value in the Event Recorder shows:

void EvrRtxMemoryPoolAllocPending ( osMemoryPoolId_t  mp_id,
uint32_t  timeout 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]timeoutTimeout Value or 0 in case of no time-out.

The event MemoryPoolAllocPending is generated when the function osMemoryPoolAlloc blocks current running thread and waits for memory block to become available.

Value in the Event Recorder shows:

void EvrRtxMemoryPoolAllocTimeout ( osMemoryPoolId_t  mp_id)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.

The event MemoryPoolAllocTimeout is generated when wait for memory pool to become available is aborted due to expired wait timeout.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
void EvrRtxMemoryPoolAllocated ( osMemoryPoolId_t  mp_id,
void *  block 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]blockaddress of the allocated memory block.

The event MemoryPoolAllocated is generated when the function osMemoryPoolAlloc successfully allocates the memory block.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • block : memory address of the allocated memory block.
void EvrRtxMemoryPoolAllocFailed ( osMemoryPoolId_t  mp_id)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.

The event MemoryPoolAllocFailed is generated when the function osMemoryPoolAlloc fails to allocate the memory block due to out of available memory.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
void EvrRtxMemoryPoolFree ( osMemoryPoolId_t  mp_id,
void *  block 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]blockaddress of the allocated memory block to be returned to the memory pool.

The event MemoryPoolFree is generated when the function osMemoryPoolFree is called.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • block : memory address of the memory block to be returned to the memory pool.
void EvrRtxMemoryPoolDeallocated ( osMemoryPoolId_t  mp_id,
void *  block 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]blockaddress of the allocated memory block to be returned to the memory pool.

The event MemoryPoolDeallocated is generated when the function osMemoryPoolFree successfully deallocates the memory block.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • block : memory address of the memory block returned to the memory pool.
void EvrRtxMemoryPoolFreeFailed ( osMemoryPoolId_t  mp_id,
void *  block 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]blockaddress of the allocated memory block to be returned to the memory pool.

The event MemoryPoolFreeFailed is generated when the function osMemoryPoolFree fails to deallocate the memory block.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • block : memory address of the memory block to be returned to the memory pool.
void EvrRtxMemoryPoolGetCapacity ( osMemoryPoolId_t  mp_id,
uint32_t  capacity 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]capacitymaximum number of memory blocks.

The event MemoryPoolGetCapacity is generated when the function osMemoryPoolGetCapacity is called and its execution result is known.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • capacity : retrieved maximum number of memory blocks (0 in case of a failure).
void EvrRtxMemoryPoolGetBlockSize ( osMemoryPoolId_t  mp_id,
uint32_t  block_size 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]block_sizememory block size in bytes.

The event MemoryPoolGetBlockSize is generated when the function osMemoryPoolGetBlockSize is called and its execution result is known.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • block_size : retrieved memory block size in bytes (0 in case of a failure).
void EvrRtxMemoryPoolGetCount ( osMemoryPoolId_t  mp_id,
uint32_t  count 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]countnumber of memory blocks used.

The event MemoryPoolGetCount is generated when the function osMemoryPoolGetCount is called and its execution result is known.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • count : retrieved number of memory block used (0 in case of a failure).
void EvrRtxMemoryPoolGetSpace ( osMemoryPoolId_t  mp_id,
uint32_t  space 
)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.
[in]spacenumber of memory blocks available.

The event MemoryPoolGetSpace is generated when the function osMemoryPoolGetSpace is called and its execution result is known.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
  • space : retrieved number of memory blocks available (0 in case of a failure).
void EvrRtxMemoryPoolDelete ( osMemoryPoolId_t  mp_id)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.

The event MemoryPoolDelete is generated when the function osMemoryPoolDelete is called.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.
void EvrRtxMemoryPoolDestroyed ( osMemoryPoolId_t  mp_id)
Parameters
[in]mp_idmemory pool ID obtained by osMemoryPoolNew.

The event MemoryPoolDestroyed is generated when the function osMemoryPoolDelete successfully deletes the memory pool object.

Value in the Event Recorder shows:

  • mp_id : memory pool ID.