16 #ifndef _RTEMS_SCORE_FREECHAIN_H 17 #define _RTEMS_SCORE_FREECHAIN_H 43 typedef void *( *Freechain_Allocator )(
size_t size );
120 size_t number_nodes_to_extend,
140 size_t number_nodes_to_extend,
RTEMS_INLINE_ROUTINE bool _Freechain_Is_empty(const Freechain_Control *freechain)
Return true if the freechain is empty, otherwise false.
Definition: freechain.h:87
void _Chain_Initialize(Chain_Control *the_chain, void *starting_address, size_t number_nodes, size_t node_size)
Initializes a chain header.
Definition: chain.c:26
void * _Freechain_Get(Freechain_Control *freechain, Freechain_Allocator allocator, size_t number_nodes_to_extend, size_t node_size)
Gets a node from the freechain.
Definition: freechain.c:46
RTEMS_INLINE_ROUTINE bool _Chain_Is_empty(const Chain_Control *the_chain)
Checks if the chain is empty.
Definition: chainimpl.h:393
Chain_Control Free
Chain of free nodes.
Definition: freechain.h:52
void _Freechain_Put(Freechain_Control *freechain, void *node)
Puts a node back onto the freechain.
Definition: freechain.c:67
void *(* Freechain_Allocator)(size_t size)
Allocator function.
Definition: freechain.h:43
RTEMS_INLINE_ROUTINE Chain_Node * _Chain_Get_first_unprotected(Chain_Control *the_chain)
Gets the first node (unprotected).
Definition: chainimpl.h:592
RTEMS_INLINE_ROUTINE void * _Freechain_Pop(Freechain_Control *freechain)
Pop an item from the freechain.
Definition: freechain.h:101
RTEMS_INLINE_ROUTINE void _Freechain_Initialize(Freechain_Control *freechain, void *initial_nodes, size_t number_nodes, size_t node_size)
Initializes a freechain.
Definition: freechain.h:67
unsigned size
Definition: tte.h:74
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
void * _Freechain_Extend(Freechain_Control *freechain, Freechain_Allocator allocator, size_t number_nodes_to_extend, size_t node_size)
Extend the freechain with new nodes.
Definition: freechain.c:24
The freechain control.
Definition: freechain.h:48