score: Add _Freechain_Push()

Update #3959.
This commit is contained in:
Sebastian Huber
2020-04-08 11:21:27 +02:00
parent 5bb93f22fc
commit 91c811a132
2 changed files with 18 additions and 4 deletions

View File

@@ -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.
*/
@@ -103,6 +103,21 @@ RTEMS_INLINE_ROUTINE void *_Freechain_Pop( Freechain_Control *freechain )
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.
*

View File

@@ -67,7 +67,6 @@ void *_Freechain_Get(
void _Freechain_Put( Freechain_Control *freechain, void *node )
{
if ( node != NULL ) {
_Chain_Initialize_node( node );
_Chain_Prepend_unprotected( &freechain->Free, node );
_Freechain_Push( freechain, node );
}
}