Lines Matching refs:rb_node
28 void (*propagate)(struct rb_node *node, struct rb_node *stop);
29 void (*copy)(struct rb_node *old, struct rb_node *new);
30 void (*rotate)(struct rb_node *old, struct rb_node *new);
33 extern void __rb_insert_augmented(struct rb_node *node, struct rb_root *root,
34 void (*augment_rotate)(struct rb_node *old, struct rb_node *new));
47 rb_insert_augmented(struct rb_node *node, struct rb_root *root, in rb_insert_augmented()
54 rb_insert_augmented_cached(struct rb_node *node, in rb_insert_augmented_cached()
63 static __always_inline struct rb_node *
64 rb_add_augmented_cached(struct rb_node *node, struct rb_root_cached *tree, in rb_add_augmented_cached()
65 bool (*less)(struct rb_node *, const struct rb_node *), in rb_add_augmented_cached() argument
68 struct rb_node **link = &tree->rb_root.rb_node; in rb_add_augmented_cached()
69 struct rb_node *parent = NULL; in rb_add_augmented_cached()
103 RBNAME ## _propagate(struct rb_node *rb, struct rb_node *stop) \
113 RBNAME ## _copy(struct rb_node *rb_old, struct rb_node *rb_new) \
120 RBNAME ## _rotate(struct rb_node *rb_old, struct rb_node *rb_new) \
174 #define __rb_parent(pc) ((struct rb_node *)(pc & ~3))
183 static inline void rb_set_parent(struct rb_node *rb, struct rb_node *p) in rb_set_parent()
188 static inline void rb_set_parent_color(struct rb_node *rb, in rb_set_parent_color()
189 struct rb_node *p, int color) in rb_set_parent_color()
195 __rb_change_child(struct rb_node *old, struct rb_node *new, in __rb_change_child()
196 struct rb_node *parent, struct rb_root *root) in __rb_change_child()
204 WRITE_ONCE(root->rb_node, new); in __rb_change_child()
208 __rb_change_child_rcu(struct rb_node *old, struct rb_node *new, in __rb_change_child_rcu()
209 struct rb_node *parent, struct rb_root *root) in __rb_change_child_rcu()
217 rcu_assign_pointer(root->rb_node, new); in __rb_change_child_rcu()
220 extern void __rb_erase_color(struct rb_node *parent, struct rb_root *root,
221 void (*augment_rotate)(struct rb_node *old, struct rb_node *new));
223 static __always_inline struct rb_node *
224 __rb_erase_augmented(struct rb_node *node, struct rb_root *root, in __rb_erase_augmented()
227 struct rb_node *child = node->rb_right; in __rb_erase_augmented()
228 struct rb_node *tmp = node->rb_left; in __rb_erase_augmented()
229 struct rb_node *parent, *rebalance; in __rb_erase_augmented()
257 struct rb_node *successor = child, *child2; in __rb_erase_augmented()
326 rb_erase_augmented(struct rb_node *node, struct rb_root *root, in rb_erase_augmented()
329 struct rb_node *rebalance = __rb_erase_augmented(node, root, augment); in rb_erase_augmented()
335 rb_erase_augmented_cached(struct rb_node *node, struct rb_root_cached *root, in rb_erase_augmented_cached()