![]()  | 
  
    Multi-ApplicationOnlineProfiling
    2.1
    
   | 
 
Not to be used directly. More...
Data Structures | |
| struct | Buffered_LIFO_chunk | 
| Structure defining a chunk of LIFO. A buffered lifo consists in several chunks which are stacked in a lifo fashion. Moreover those chunks gather several elems in order to avoid alocation and dealocation plus it reduces the pointer versus data ratio for small amount of data.  More... | |
Functions | |
| struct Buffered_LIFO_chunk * | Buffered_LIFO_chunk_new (size_t sizeof_payload, uint64_t chunk_size, struct Buffered_LIFO_chunk *prev) | 
| Allocates an empty Buffered_LIFO_chunk pointing to prev.  More... | |
| void | Buffered_LIFO_chunk_release (struct Buffered_LIFO_chunk *chunk, size_t sizeof_payload, void(*free_func)(void *)) | 
| Releases a Buffered_LIFO_chunk note that it does not recurses over previous chunks.  More... | |
| struct Buffered_LIFO_chunk * | Buffered_LIFO_chunk_push (struct Buffered_LIFO_chunk *chunk, void *elem, size_t sizeof_payload, uint64_t chunk_size) | 
| Push a new elem in the Buffered_LIFO_chunk.  More... | |
| struct Buffered_LIFO_chunk * | Buffered_LIFO_chunk_pop (struct Buffered_LIFO_chunk *chunk, size_t sizeof_payload, uint64_t chunk_size, void *elem, int *did_ret) | 
| Get an element from the Buffered_LIFO_chunk.  More... | |
| void * | Buffered_LIFO_chunk_head (struct Buffered_LIFO_chunk *chunk, size_t sizeof_payload) | 
| Get a pointer to the Buffered_LIFO_chunk head eleme (NULL if none)  More... | |
Not to be used directly.
These structure and functions are not meant to be used directly. These are internals of Buffered LIFO and related functions.
| void* Buffered_LIFO_chunk_head | ( | struct Buffered_LIFO_chunk * | chunk, | 
| size_t | sizeof_payload | ||
| ) | 
Get a pointer to the Buffered_LIFO_chunk head eleme (NULL if none)
| chunk | Chunk from which we want to get the head | 
Definition at line 117 of file Buffered_LIFO.c.


| struct Buffered_LIFO_chunk* Buffered_LIFO_chunk_new | ( | size_t | sizeof_payload, | 
| uint64_t | chunk_size, | ||
| struct Buffered_LIFO_chunk * | prev | ||
| ) | 
Allocates an empty Buffered_LIFO_chunk pointing to prev.
| sizeof_payload | size of a payload element to compute piggy backing stored in the LIFO to gain space | 
| chunk_size | the number of elements the chunk can contain | 
| prev | pointer to the previous Buffered_LIFO_chunk in order to chain them | 
Definition at line 23 of file Buffered_LIFO.c.

| struct Buffered_LIFO_chunk* Buffered_LIFO_chunk_pop | ( | struct Buffered_LIFO_chunk * | chunk, | 
| size_t | sizeof_payload, | ||
| uint64_t | chunk_size, | ||
| void * | elem, | ||
| int * | did_ret | ||
| ) | 
Get an element from the Buffered_LIFO_chunk.
| chunk | Chunk to which we want to add an elem (can be NULL and then leads to did_ret == 0 ) | 
| sizeof_payload | size of a payload element | 
| chunk_size | the number of elements the chunk can contain | 
| did_ret | boolean which allows us to know if we actually retrieved an elem from the LIFO | 
Definition at line 88 of file Buffered_LIFO.c.


| struct Buffered_LIFO_chunk* Buffered_LIFO_chunk_push | ( | struct Buffered_LIFO_chunk * | chunk, | 
| void * | elem, | ||
| size_t | sizeof_payload, | ||
| uint64_t | chunk_size | ||
| ) | 
Push a new elem in the Buffered_LIFO_chunk.
| chunk | Chunk to which we want to add an elem (can be NULL and then leads to a chunk allocation) | 
| sizeof_payload | size of a payload element | 
| chunk_size | the number of elements the chunk can contain | 
Definition at line 62 of file Buffered_LIFO.c.


| void Buffered_LIFO_chunk_release | ( | struct Buffered_LIFO_chunk * | chunk, | 
| size_t | sizeof_payload, | ||
| void(*)(void *) | free_func | ||
| ) | 
Releases a Buffered_LIFO_chunk note that it does not recurses over previous chunks.
| chunk | Chunk to be released | 
| sizeof_payload | size of a payload element | 
| free_func | a function to be called over each elem still present in the FIFO (NULL if node) | 
Definition at line 39 of file Buffered_LIFO.c.
