6 #define rbtree_item(ptr, type, member) \
7 ((type*)(((char*)ptr) - offsetof(type, member)))
rbtree_node_t * rbtree_max(const rbtree_t *tree)
rbtree_node_t * rbtree_node_next(const rbtree_node_t *node)
rbtree_node_t * rbtree_min(const rbtree_t *tree)
rbtree_node_t * rbtree_find(const rbtree_t *tree, const rbtree_node_t *node)
rbtree_node_t * rbtree_insert(rbtree_t *tree, rbtree_node_t *node)
void rbtree_init(rbtree_t *tree, rbtree_node_comparator_t comparator)
rbtree_node_t * rbtree_remove(rbtree_t *tree, rbtree_node_t *node, rbtree_node_destructor_t destructor)
int(* rbtree_node_comparator_t)(const rbtree_node_t *lhs, const rbtree_node_t *rhs)
int rbtree_empty(const rbtree_t *tree)
rbtree_node_t * rbtree_node_prev(const rbtree_node_t *node)
void rbtree_clear(rbtree_t *tree, rbtree_node_destructor_t destructor)
void rbtree_insert_multi(rbtree_t *tree, rbtree_node_t *node)
size_t rbtree_size(const rbtree_t *tree)
void(* rbtree_node_destructor_t)(rbtree_node_t *Node)
__attribute__((warn_unused_result)) rbtree_node_t *rbtree_insert(rbtree_t *tree
rbtree_node_comparator_t comparator