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,
54 rb_insert_augmented_cached(struct rb_node *node,
63 static __always_inline struct rb_node *
64 rb_add_augmented_cached(struct rb_node *node, struct rb_root_cached *tree,
65 bool (*less)(struct rb_node *, const struct rb_node *),
68 struct rb_node **link = &tree->rb_root.rb_node;
69 struct rb_node *parent = NULL;
95 * RBFIELD: name of struct rb_node field within RBSTRUCT
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) \
140 * RBFIELD: name of struct rb_node field within RBSTRUCT
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)
188 static inline void rb_set_parent_color(struct rb_node *rb,
189 struct rb_node *p, int color)
195 __rb_change_child(struct rb_node *old, struct rb_node *new,
196 struct rb_node *parent, struct rb_root *root)
204 WRITE_ONCE(root->rb_node, new);
208 __rb_change_child_rcu(struct rb_node *old, struct rb_node *new,
209 struct rb_node *parent, struct rb_root *root)
217 rcu_assign_pointer(root->rb_node, new);
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,
227 struct rb_node *child = node->rb_right;
228 struct rb_node *tmp = node->rb_left;
229 struct rb_node *parent, *rebalance;
257 struct rb_node *successor = child, *child2;
326 rb_erase_augmented(struct rb_node *node, struct rb_root *root,
329 struct rb_node *rebalance = __rb_erase_augmented(node, root, augment);
335 rb_erase_augmented_cached(struct rb_node *node, struct rb_root_cached *root,