Ce module fournit un mécanisme d'allocation dynamique de mémoire optimisé.
|
typedef struct xHeap | xHeap |
| Structure pour gérer un tas.
|
|
#define HEAP_DEFINE_BUF |
( |
|
name, |
|
|
|
size |
|
) |
| |
Allocation d'un tas de taille size.
- Paramètres
-
name | nom du tas |
size | taille du tas en octets |
Définition à la ligne 77 du fichier heap.h.
void* pvHeapAllocMem |
( |
xHeap * |
heap, |
|
|
size_t |
size |
|
) |
| |
Alloue un bloc sur le tas.
- Paramètres
-
heap | tas |
size | taille en octets du bloc demandé |
- Renvoie
- pointeur sur le bloc ou NULL en cas d'erreur
void* pvHeapCalloc |
( |
xHeap * |
heap, |
|
|
size_t |
nmemb, |
|
|
size_t |
size |
|
) |
| |
Alloue un bloc sur le tas pour un tableau.
Cette fonction est conforme à la fonction calloc() C ANSI.
Chaque bloc alloué avec cette fonction aura une taille supérieure à la taille demandée de sizeof(size_t) (2 octets sur AVR8).
- Paramètres
-
heap | tas |
nmemb | nombre d'éléments |
size | taille en octets de l'élément |
- Renvoie
- pointeur sur le bloc ou NULL en cas d'erreur
void* pvHeapMalloc |
( |
xHeap * |
heap, |
|
|
size_t |
size |
|
) |
| |
Alloue un bloc sur le tas.
Cette fonction est conforme à la fonction malloc() C ANSI.
Chaque bloc alloué avec cette fonction aura une taille supérieure à la taille demandée de sizeof(size_t) (2 octets sur AVR8).
- Paramètres
-
heap | tas |
size | taille en octets du bloc demandé |
- Renvoie
- pointeur sur le bloc ou NULL en cas d'erreur
size_t ulHeapFreeSpace |
( |
xHeap * |
heap | ) |
|
Quantité de mémoire libre d'un tas.
- Paramètres
-
- Renvoie
- nombre d'octets libre
- Note
- La valeur retournée est la somme de toutes les zones libres. Ces régions ne sont pas forcément contigues, aussi une allocation peut échouer même si si la taille demandée est inférieure à l'espace libre.
void vHeapFree |
( |
xHeap * |
heap, |
|
|
void * |
mem |
|
) |
| |
Libère un bloc alloué avec pvHeapMalloc() ou pvHeapCalloc()
Cette fonction est conforme à la fonction free() C ANSI.
- Paramètres
-
heap | tas |
mem | pointeur sur le bloc à libérer |
void vHeapFreeMem |
( |
xHeap * |
heap, |
|
|
void * |
mem, |
|
|
size_t |
size |
|
) |
| |
Libère un bloc alloué avec pvHeapAllocMem()
- Paramètres
-
heap | tas |
mem | pointeur sur le bloc à libérer |
size | taille en octets du bloc |
void vHeapInit |
( |
xHeap * |
heap, |
|
|
void * |
memory, |
|
|
size_t |
size |
|
) |
| |
Initialise un tas.
- Paramètres
-
heap | tas |
memory | buffer mémoire déclaré avec HEAP_DEFINE_BUF() |
size | taille en octets du buffer |