forked from Imagelibrary/rtems
@@ -92,9 +92,9 @@ RTEMS_INLINE_ROUTINE bool _Freechain_Is_empty(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Pop an item from the freechain.
|
* @brief Pops a node from the freechain.
|
||||||
*
|
*
|
||||||
* The freechain must not be empty.
|
* The freechain shall not be empty.
|
||||||
*
|
*
|
||||||
* @param freechain The freechain control.
|
* @param freechain The freechain control.
|
||||||
*/
|
*/
|
||||||
@@ -103,6 +103,21 @@ RTEMS_INLINE_ROUTINE void *_Freechain_Pop( Freechain_Control *freechain )
|
|||||||
return _Chain_Get_first_unprotected( &freechain->Free );
|
return _Chain_Get_first_unprotected( &freechain->Free );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Pushes a node back to the freechain.
|
||||||
|
*
|
||||||
|
* @param freechain The freechain control.
|
||||||
|
* @param node The node to push back. The node shall not be @c NULL.
|
||||||
|
*/
|
||||||
|
void RTEMS_INLINE_ROUTINE _Freechain_Push(
|
||||||
|
Freechain_Control *freechain,
|
||||||
|
void *node
|
||||||
|
)
|
||||||
|
{
|
||||||
|
_Chain_Initialize_node( node );
|
||||||
|
_Chain_Prepend_unprotected( &freechain->Free, node );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Extend the freechain with new nodes.
|
* @brief Extend the freechain with new nodes.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -67,7 +67,6 @@ void *_Freechain_Get(
|
|||||||
void _Freechain_Put( Freechain_Control *freechain, void *node )
|
void _Freechain_Put( Freechain_Control *freechain, void *node )
|
||||||
{
|
{
|
||||||
if ( node != NULL ) {
|
if ( node != NULL ) {
|
||||||
_Chain_Initialize_node( node );
|
_Freechain_Push( freechain, node );
|
||||||
_Chain_Prepend_unprotected( &freechain->Free, node );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user