score: Add _Freechain_Is_empty()

Update #3835.
This commit is contained in:
Sebastian Huber
2019-12-10 10:58:42 +01:00
parent 36e59b2bbc
commit 8ff1af1655
2 changed files with 14 additions and 1 deletions

View File

@@ -79,6 +79,18 @@ RTEMS_INLINE_ROUTINE void _Freechain_Initialize(
); );
} }
/**
* @brief Return true if the freechain is empty, otherwise false
*
* @param freechain The freechain control.
*/
RTEMS_INLINE_ROUTINE bool _Freechain_Is_empty(
const Freechain_Control *freechain
)
{
return _Chain_Is_empty( &freechain->Free );
}
/** /**
* @brief Gets a node from the freechain. * @brief Gets a node from the freechain.
* *

View File

@@ -30,12 +30,13 @@ static rtems_task Init(rtems_task_argument ignored)
TEST_BEGIN(); TEST_BEGIN();
_Freechain_Initialize(&fc, &node2, 1, sizeof(node2)); _Freechain_Initialize(&fc, &node2, 1, sizeof(node2));
rtems_test_assert(!_Freechain_Is_empty(&fc));
rtems_test_assert(_Chain_Node_count_unprotected(&fc.Free) == 1); rtems_test_assert(_Chain_Node_count_unprotected(&fc.Free) == 1);
rtems_test_assert(_Chain_First(&fc.Free) == &node2.Node); rtems_test_assert(_Chain_First(&fc.Free) == &node2.Node);
rtems_test_assert(_Chain_Last(&fc.Free) == &node2.Node); rtems_test_assert(_Chain_Last(&fc.Free) == &node2.Node);
_Freechain_Initialize(&fc, NULL, 0, sizeof(test_node)); _Freechain_Initialize(&fc, NULL, 0, sizeof(test_node));
rtems_test_assert(_Chain_Is_empty(&fc.Free)); rtems_test_assert(_Freechain_Is_empty(&fc));
rtems_test_assert(_Freechain_Get(&fc, NULL, 0, sizeof(test_node)) == NULL); rtems_test_assert(_Freechain_Get(&fc, NULL, 0, sizeof(test_node)) == NULL);