Rechercher une page de manuel
Eina_Memory_Pool_Group
Langue: en
Version: 376633 (fedora - 01/12/10)
Section: 3 (Bibliothèques de fonctions)
NAME
Memory Pool -These functions provide memory pool management.
Typedefs
typedef struct _Eina_Mempool Eina_Mempool
Mempool type.
typedef struct _Eina_Mempool_Backend Eina_Mempool_Backend
Mempool backend type.
Functions
EAPI Eina_Mempool * eina_mempool_add (const char *module, const char *context, const char *options,...) EINA_MALLOC EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1)
EAPI void eina_mempool_del (Eina_Mempool *mp) EINA_ARG_NONNULL(1)
static void * eina_mempool_realloc (Eina_Mempool *mp, void *element, unsigned int size) EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
static void * eina_mempool_malloc (Eina_Mempool *mp, unsigned int size) EINA_MALLOC EINA_ARG_NONNULL(1) EINA_WARN_UNUSED_RESULT
static void eina_mempool_free (Eina_Mempool *mp, void *element) EINA_ARG_NONNULL(1)
EAPI void eina_mempool_gc (Eina_Mempool *mp) EINA_ARG_NONNULL(1)
EAPI void eina_mempool_statistics (Eina_Mempool *mp) EINA_ARG_NONNULL(1)
EAPI Eina_Bool eina_mempool_register (Eina_Mempool_Backend *be) EINA_ARG_NONNULL(1)
EAPI void eina_mempool_unregister (Eina_Mempool_Backend *be) EINA_ARG_NONNULL(1)
Variables
EAPI Eina_Error EINA_ERROR_NOT_MEMPOOL_MODULE
Detailed Description
These functions provide memory pool management.
Several mempool are available:
- *
- buddy: It uses the 'buddy
allocator' algorithm but the Eina implementation differs in the sense that the chunk information is not stored on the chunk itself, but on another memory area. This is useful for cases where the memory to manage might be slower to access, or limited (like video memory). - *
- chained_pool: It is the default one. It allocates a big chunk of memory with malloc() and split the result in chunks of the requested size that are pushed inside a stack. When requested, it takes this pointer from the stack to give them to whoever wants them.
- *
- ememoa_fixed and ememoa_unknown: experimental allocators which could be useful when a fixed amount of memory is needed.
- *
- fixed_bitmap: It allocates with malloc) 32* the requested size and push the pool pointer in an rbtree. To find empty space in a pool, it will just search for the first bit set in an int (32 bits). Then, when a pointer is freed, it will do a search inside the rbtree.
- *
- pass_through: it just call malloc() and free(). It may be faster on some computers than using our own allocators (like having a huge L2 cache, over 4MB).
Author
Generated automatically by Doxygen for Eina from the source code.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre