Lines Matching refs:node
97 __rb_insert(struct rb_node *node, struct rb_root *root, in __rb_insert() argument
100 struct rb_node *parent = rb_red_parent(node), *gparent, *tmp; in __rb_insert()
111 rb_set_parent_color(node, NULL, RB_BLACK); in __rb_insert()
136 node = gparent; in __rb_insert()
137 parent = rb_parent(node); in __rb_insert()
138 rb_set_parent_color(node, parent, RB_RED); in __rb_insert()
143 if (node == tmp) { in __rb_insert()
156 tmp = node->rb_left; in __rb_insert()
158 WRITE_ONCE(node->rb_left, parent); in __rb_insert()
162 rb_set_parent_color(parent, node, RB_RED); in __rb_insert()
163 augment_rotate(parent, node); in __rb_insert()
164 parent = node; in __rb_insert()
165 tmp = node->rb_right; in __rb_insert()
190 node = gparent; in __rb_insert()
191 parent = rb_parent(node); in __rb_insert()
192 rb_set_parent_color(node, parent, RB_RED); in __rb_insert()
197 if (node == tmp) { in __rb_insert()
199 tmp = node->rb_right; in __rb_insert()
201 WRITE_ONCE(node->rb_right, parent); in __rb_insert()
205 rb_set_parent_color(parent, node, RB_RED); in __rb_insert()
206 augment_rotate(parent, node); in __rb_insert()
207 parent = node; in __rb_insert()
208 tmp = node->rb_left; in __rb_insert()
231 struct rb_node *node = NULL, *sibling, *tmp1, *tmp2; in ____rb_erase_color() local
242 if (node != sibling) { /* node == parent->rb_left */ in ____rb_erase_color()
286 node = parent; in ____rb_erase_color()
287 parent = rb_parent(node); in ____rb_erase_color()
361 node = parent; in ____rb_erase_color()
362 parent = rb_parent(node); in ____rb_erase_color()
410 static inline void dummy_propagate(struct rb_node *node, struct rb_node *stop) {} in dummy_propagate() argument
418 void rb_insert_color(struct rb_node *node, struct rb_root *root) in rb_insert_color() argument
420 __rb_insert(node, root, dummy_rotate); in rb_insert_color()
424 void rb_erase(struct rb_node *node, struct rb_root *root) in rb_erase() argument
427 rebalance = __rb_erase_augmented(node, root, &dummy_callbacks); in rb_erase()
440 void __rb_insert_augmented(struct rb_node *node, struct rb_root *root, in __rb_insert_augmented() argument
443 __rb_insert(node, root, augment_rotate); in __rb_insert_augmented()
476 struct rb_node *rb_next(const struct rb_node *node) in rb_next() argument
480 if (RB_EMPTY_NODE(node)) in rb_next()
487 if (node->rb_right) { in rb_next()
488 node = node->rb_right; in rb_next()
489 while (node->rb_left) in rb_next()
490 node=node->rb_left; in rb_next()
491 return (struct rb_node *)node; in rb_next()
501 while ((parent = rb_parent(node)) && node == parent->rb_right) in rb_next()
502 node = parent; in rb_next()
508 struct rb_node *rb_prev(const struct rb_node *node) in rb_prev() argument
512 if (RB_EMPTY_NODE(node)) in rb_prev()
519 if (node->rb_left) { in rb_prev()
520 node = node->rb_left; in rb_prev()
521 while (node->rb_right) in rb_prev()
522 node=node->rb_right; in rb_prev()
523 return (struct rb_node *)node; in rb_prev()
530 while ((parent = rb_parent(node)) && node == parent->rb_left) in rb_prev()
531 node = parent; in rb_prev()
554 static struct rb_node *rb_left_deepest_node(const struct rb_node *node) in rb_left_deepest_node() argument
557 if (node->rb_left) in rb_left_deepest_node()
558 node = node->rb_left; in rb_left_deepest_node()
559 else if (node->rb_right) in rb_left_deepest_node()
560 node = node->rb_right; in rb_left_deepest_node()
562 return (struct rb_node *)node; in rb_left_deepest_node()
566 struct rb_node *rb_next_postorder(const struct rb_node *node) in rb_next_postorder() argument
569 if (!node) in rb_next_postorder()
571 parent = rb_parent(node); in rb_next_postorder()
574 if (parent && node == parent->rb_left && parent->rb_right) { in rb_next_postorder()