diff options
-rw-r--r-- | cpukit/sapi/include/rtems/rbtree.h | 16 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/rbtree.h | 30 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/scheduleredfimpl.h | 2 | ||||
-rw-r--r-- | cpukit/score/src/threadqops.c | 2 |
4 files changed, 38 insertions, 12 deletions
diff --git a/cpukit/sapi/include/rtems/rbtree.h b/cpukit/sapi/include/rtems/rbtree.h index 900506fdc7..cf4cd60a9a 100644 --- a/cpukit/sapi/include/rtems/rbtree.h +++ b/cpukit/sapi/include/rtems/rbtree.h @@ -147,27 +147,23 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_root( } /** - * @brief Return pointer to RBTree Minimum - * - * This function returns a pointer to the minimum node of @a the_rbtree. + * @copydoc _RBTree_Minimum() */ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_min( const rtems_rbtree_control *the_rbtree ) { - return _RBTree_First( the_rbtree, RBT_LEFT ); + return _RBTree_Minimum( the_rbtree ); } /** - * @brief Return pointer to RBTree maximum. - * - * This function returns a pointer to the maximum node of @a the_rbtree. + * @copydoc _RBTree_Maximum() */ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_max( const rtems_rbtree_control *the_rbtree ) { - return _RBTree_First( the_rbtree, RBT_RIGHT ); + return _RBTree_Maximum( the_rbtree ); } /** @@ -338,7 +334,7 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_min( const rtems_rbtree_control *the_rbtree ) { - return _RBTree_First( the_rbtree, RBT_LEFT ); + return rtems_rbtree_min( the_rbtree ); } /** @@ -352,7 +348,7 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_max( const rtems_rbtree_control *the_rbtree ) { - return _RBTree_First( the_rbtree, RBT_RIGHT ); + return rtems_rbtree_max( the_rbtree ); } /** diff --git a/cpukit/score/include/rtems/score/rbtree.h b/cpukit/score/include/rtems/score/rbtree.h index 299b75ad2c..9c5bf65e34 100644 --- a/cpukit/score/include/rtems/score/rbtree.h +++ b/cpukit/score/include/rtems/score/rbtree.h @@ -484,6 +484,36 @@ RTEMS_INLINE_ROUTINE void _RBTree_Initialize_empty( } /** + * @brief Returns the minimum node of the red-black tree. + * + * @param[in] the_rbtree The red-black tree control. + * + * @retval NULL The red-black tree is empty. + * @retval node The minimum node. + */ +RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Minimum( + const RBTree_Control *the_rbtree +) +{ + return _RBTree_First( the_rbtree, RBT_LEFT ); +} + +/** + * @brief Returns the maximum node of the red-black tree. + * + * @param[in] the_rbtree The red-black tree control. + * + * @retval NULL The red-black tree is empty. + * @retval node The maximum node. + */ +RTEMS_INLINE_ROUTINE RBTree_Node *_RBTree_Maximum( + const RBTree_Control *the_rbtree +) +{ + return _RBTree_First( the_rbtree, RBT_RIGHT ); +} + +/** * @brief Returns the predecessor of a node. * * @param[in] node is the node. diff --git a/cpukit/score/include/rtems/score/scheduleredfimpl.h b/cpukit/score/include/rtems/score/scheduleredfimpl.h index af0749df88..4feea71e51 100644 --- a/cpukit/score/include/rtems/score/scheduleredfimpl.h +++ b/cpukit/score/include/rtems/score/scheduleredfimpl.h @@ -87,7 +87,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_EDF_Schedule_body( { Scheduler_EDF_Context *context = _Scheduler_EDF_Get_context( scheduler ); - RBTree_Node *first = _RBTree_First( &context->Ready, RBT_LEFT ); + RBTree_Node *first = _RBTree_Minimum( &context->Ready ); Scheduler_EDF_Node *node = RTEMS_CONTAINER_OF( first, Scheduler_EDF_Node, Node ); Thread_Control *heir = node->thread; diff --git a/cpukit/score/src/threadqops.c b/cpukit/score/src/threadqops.c index d19067fab1..c9e2b5d9ba 100644 --- a/cpukit/score/src/threadqops.c +++ b/cpukit/score/src/threadqops.c @@ -231,7 +231,7 @@ static Thread_Control *_Thread_queue_Priority_first( { RBTree_Node *first; - first = _RBTree_First( &heads->Heads.Priority, RBT_LEFT ); + first = _RBTree_Minimum( &heads->Heads.Priority ); return first != NULL ? THREAD_RBTREE_NODE_TO_THREAD( first ) : NULL; } |