ChibiOS/RT  5.1.0
chmempools.h File Reference

Memory Pools macros and structures. More...

Go to the source code of this file.

Data Structures

struct  pool_header
 Memory pool free object header. More...
 
struct  memory_pool_t
 Memory pool descriptor. More...
 
struct  guarded_memory_pool_t
 Guarded memory pool descriptor. More...
 

Macros

#define _MEMORYPOOL_DATA(name, size, align, provider)   {NULL, size, align, provider}
 Data part of a static memory pool initializer. More...
 
#define MEMORYPOOL_DECL(name, size, align, provider)   memory_pool_t name = _MEMORYPOOL_DATA(name, size, align, provider)
 Static memory pool initializer. More...
 
#define _GUARDEDMEMORYPOOL_DATA(name, size, align)
 Data part of a static guarded memory pool initializer. More...
 
#define GUARDEDMEMORYPOOL_DECL(name, size, align)   guarded_memory_pool_t name = _GUARDEDMEMORYPOOL_DATA(name, size, align)
 Static guarded memory pool initializer. More...
 

Functions

void chPoolObjectInitAligned (memory_pool_t *mp, size_t size, unsigned align, memgetfunc_t provider)
 Initializes an empty memory pool. More...
 
void chPoolLoadArray (memory_pool_t *mp, void *p, size_t n)
 Loads a memory pool with an array of static objects. More...
 
void * chPoolAllocI (memory_pool_t *mp)
 Allocates an object from a memory pool. More...
 
void * chPoolAlloc (memory_pool_t *mp)
 Allocates an object from a memory pool. More...
 
void chPoolFreeI (memory_pool_t *mp, void *objp)
 Releases an object into a memory pool. More...
 
void chPoolFree (memory_pool_t *mp, void *objp)
 Releases an object into a memory pool. More...
 
void chGuardedPoolObjectInitAligned (guarded_memory_pool_t *gmp, size_t size, unsigned align)
 Initializes an empty guarded memory pool. More...
 
void chGuardedPoolLoadArray (guarded_memory_pool_t *gmp, void *p, size_t n)
 Loads a guarded memory pool with an array of static objects. More...
 
void * chGuardedPoolAllocTimeoutS (guarded_memory_pool_t *gmp, sysinterval_t timeout)
 Allocates an object from a guarded memory pool. More...
 
void * chGuardedPoolAllocTimeout (guarded_memory_pool_t *gmp, sysinterval_t timeout)
 Allocates an object from a guarded memory pool. More...
 
void chGuardedPoolFree (guarded_memory_pool_t *gmp, void *objp)
 Releases an object into a guarded memory pool. More...
 
static void chPoolObjectInit (memory_pool_t *mp, size_t size, memgetfunc_t provider)
 Initializes an empty memory pool. More...
 
static void chPoolAdd (memory_pool_t *mp, void *objp)
 Adds an object to a memory pool. More...
 
static void chPoolAddI (memory_pool_t *mp, void *objp)
 Adds an object to a memory pool. More...
 
static void chGuardedPoolObjectInit (guarded_memory_pool_t *gmp, size_t size)
 Initializes an empty guarded memory pool. More...
 
static void * chGuardedPoolAllocI (guarded_memory_pool_t *gmp)
 Allocates an object from a guarded memory pool. More...
 
static void chGuardedPoolFreeI (guarded_memory_pool_t *gmp, void *objp)
 Releases an object into a guarded memory pool. More...
 
static void chGuardedPoolFreeS (guarded_memory_pool_t *gmp, void *objp)
 Releases an object into a guarded memory pool. More...
 
static void chGuardedPoolAdd (guarded_memory_pool_t *gmp, void *objp)
 Adds an object to a guarded memory pool. More...
 
static void chGuardedPoolAddI (guarded_memory_pool_t *gmp, void *objp)
 Adds an object to a guarded memory pool. More...
 
static void chGuardedPoolAddS (guarded_memory_pool_t *gmp, void *objp)
 Adds an object to a guarded memory pool. More...
 

Detailed Description

Memory Pools macros and structures.

Definition in file chmempools.h.