summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/sapi')
-rw-r--r--cpukit/sapi/include/rtems/rbtree.h60
-rw-r--r--cpukit/sapi/src/rbheap.c8
2 files changed, 42 insertions, 26 deletions
diff --git a/cpukit/sapi/include/rtems/rbtree.h b/cpukit/sapi/include/rtems/rbtree.h
index 5cbdab46c2..b7872564bb 100644
--- a/cpukit/sapi/include/rtems/rbtree.h
+++ b/cpukit/sapi/include/rtems/rbtree.h
@@ -27,6 +27,20 @@ extern "C" {
#endif
/**
+ * @defgroup ClassicRBTrees Red-Black Trees
+ *
+ * @ingroup ClassicRTEMS
+ *
+ * @brief A Red-Black Tree container.
+ *
+ * The red-black tree container offers no internal protection against
+ * concurrent access. The user must ensure that at most one thread at once can
+ * access a red-black tree instance.
+ *
+ * @{
+ */
+
+/**
* @typedef rtems_rbtree_node
*
* A node that can be manipulated in the rbtree.
@@ -299,45 +313,45 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_root(
}
/**
- * @copydoc _RBTree_Find_unprotected()
+ * @copydoc _RBTree_Find()
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_find_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_find(
const rtems_rbtree_control *the_rbtree,
const rtems_rbtree_node *the_node
)
{
- return _RBTree_Find_unprotected( the_rbtree, the_node );
+ return _RBTree_Find( the_rbtree, the_node );
}
/**
- * @copydoc _RBTree_Predecessor_unprotected()
+ * @copydoc _RBTree_Predecessor()
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_predecessor_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_predecessor(
const rtems_rbtree_node *node
)
{
- return _RBTree_Predecessor_unprotected( node );
+ return _RBTree_Predecessor( node );
}
/**
- * @copydoc _RBTree_Successor_unprotected()
+ * @copydoc _RBTree_Successor()
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_successor_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_node* rtems_rbtree_successor(
const rtems_rbtree_node *node
)
{
- return _RBTree_Successor_unprotected( node );
+ return _RBTree_Successor( node );
}
/**
- * @copydoc _RBTree_Extract_unprotected()
+ * @copydoc _RBTree_Extract()
*/
-RTEMS_INLINE_ROUTINE void rtems_rbtree_extract_unprotected(
+RTEMS_INLINE_ROUTINE void rtems_rbtree_extract(
rtems_rbtree_control *the_rbtree,
rtems_rbtree_node *the_node
)
{
- _RBTree_Extract_unprotected( the_rbtree, the_node );
+ _RBTree_Extract( the_rbtree, the_node );
}
/**
@@ -347,11 +361,11 @@ RTEMS_INLINE_ROUTINE void rtems_rbtree_extract_unprotected(
* a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min(
rtems_rbtree_control *the_rbtree
)
{
- return _RBTree_Get_unprotected( the_rbtree, RBT_LEFT );
+ return _RBTree_Get( the_rbtree, RBT_LEFT );
}
/**
@@ -361,11 +375,11 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_min_unprotected(
* a pointer to that node. If @a the_rbtree is empty, then NULL is returned.
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_get_max(
rtems_rbtree_control *the_rbtree
)
{
- return _RBTree_Get_unprotected( the_rbtree, RBT_RIGHT );
+ return _RBTree_Get( the_rbtree, RBT_RIGHT );
}
/**
@@ -397,24 +411,24 @@ RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_peek_max(
}
/**
- * @copydoc _RBTree_Find_header_unprotected()
+ * @copydoc _RBTree_Find_header()
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_control *rtems_rbtree_find_header_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_control *rtems_rbtree_find_header(
rtems_rbtree_node *the_node
)
{
- return _RBTree_Find_header_unprotected( the_node );
+ return _RBTree_Find_header( the_node );
}
/**
- * @copydoc _RBTree_Insert_unprotected()
+ * @copydoc _RBTree_Insert()
*/
-RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_insert_unprotected(
+RTEMS_INLINE_ROUTINE rtems_rbtree_node *rtems_rbtree_insert(
rtems_rbtree_control *the_rbtree,
rtems_rbtree_node *the_node
)
{
- return _RBTree_Insert_unprotected( the_rbtree, the_node );
+ return _RBTree_Insert( the_rbtree, the_node );
}
/**
@@ -427,6 +441,8 @@ RTEMS_INLINE_ROUTINE bool rtems_rbtree_is_unique(
return _RBTree_Is_unique(the_rbtree);
}
+/** @} */
+
#ifdef __cplusplus
}
#endif
diff --git a/cpukit/sapi/src/rbheap.c b/cpukit/sapi/src/rbheap.c
index 5233778171..a33b980175 100644
--- a/cpukit/sapi/src/rbheap.c
+++ b/cpukit/sapi/src/rbheap.c
@@ -80,7 +80,7 @@ static void insert_into_tree(
rtems_rbheap_chunk *chunk
)
{
- _RBTree_Insert_unprotected(tree, &chunk->tree_node);
+ _RBTree_Insert(tree, &chunk->tree_node);
}
rtems_status_code rtems_rbheap_initialize(
@@ -198,7 +198,7 @@ static rtems_rbheap_chunk *find(rtems_rbtree_control *chunk_tree, uintptr_t key)
rtems_rbheap_chunk chunk = { .begin = key };
return rtems_rbheap_chunk_of_node(
- _RBTree_Find_unprotected(chunk_tree, &chunk.tree_node)
+ _RBTree_Find(chunk_tree, &chunk.tree_node)
);
}
@@ -208,7 +208,7 @@ static rtems_rbheap_chunk *get_next(
)
{
return rtems_rbheap_chunk_of_node(
- _RBTree_Next_unprotected(&chunk->tree_node, dir)
+ _RBTree_Next(&chunk->tree_node, dir)
);
}
@@ -230,7 +230,7 @@ static void check_and_merge(
a->size += b->size;
rtems_chain_extract_unprotected(&b->chain_node);
add_to_chain(free_chain, b);
- _RBTree_Extract_unprotected(chunk_tree, &b->tree_node);
+ _RBTree_Extract(chunk_tree, &b->tree_node);
}
}