backport to buster
[hcoop/debian/openafs.git] / src / opr / rbtree.h
CommitLineData
805e021f
CE
1/* Left-leaning red/black trees */
2
3#ifndef OPENAFS_OPR_RBTREE_H
4#define OPENAFS_OPR_RBTREE_H 1
5
6struct opr_rbtree_node {
7 struct opr_rbtree_node *left;
8 struct opr_rbtree_node *right;
9 struct opr_rbtree_node *parent;
10 int red;
11};
12
13struct opr_rbtree {
14 struct opr_rbtree_node *root;
15};
16
17extern void opr_rbtree_init(struct opr_rbtree *head);
18extern struct opr_rbtree_node *opr_rbtree_first(struct opr_rbtree *head);
19extern struct opr_rbtree_node *opr_rbtree_last(struct opr_rbtree *head);
20extern struct opr_rbtree_node *opr_rbtree_next(struct opr_rbtree_node *node);
21extern struct opr_rbtree_node *opr_rbtree_prev(struct opr_rbtree_node *node);
22extern void opr_rbtree_insert(struct opr_rbtree *head,
23 struct opr_rbtree_node *parent,
24 struct opr_rbtree_node **childptr,
25 struct opr_rbtree_node *node);
26extern void opr_rbtree_remove(struct opr_rbtree *head,
27 struct opr_rbtree_node *node);
28extern void opr_rbtree_replace(struct opr_rbtree *head,
29 struct opr_rbtree_node *old,
30 struct opr_rbtree_node *replacement);
31
32#endif