Home | History | Annotate | Download | only in gen

Lines Matching defs:standin

551 	struct rb_node *standin)
553 const unsigned int standin_which = RB_POSITION(standin);
556 struct rb_node *standin_father = RB_FATHER(standin);
557 bool rebalance = RB_BLACK_P(standin);
564 KASSERT(RB_SENTINEL_P(standin->rb_nodes[standin_other]));
565 standin_son = standin->rb_nodes[standin_which];
571 KASSERT(RB_SENTINEL_P(standin->rb_nodes[standin_which]));
572 standin_son = standin->rb_nodes[standin_other];
580 * If standin has a child, it must be red.
588 KASSERT(rb_tree_check_node(rbt, standin, NULL, false));
613 * If we are about to delete the standin's father, then when
616 * our standin's father we only need to reparent the standin's
623 KASSERT(RB_SENTINEL_P(standin->rb_nodes[standin_other]));
625 KASSERT(self->rb_nodes[standin_which] == standin);
627 * Have our son/standin adopt his brother as his new son.
629 standin_father = standin;
636 * Sever standin's connection to his father.
642 standin->rb_nodes[standin_other] = self->rb_nodes[standin_other];
643 RB_SET_FATHER(standin->rb_nodes[standin_other], standin);
653 * Move the only remaining son to our standin. If our standin is our
656 KASSERT(standin->rb_nodes[standin_other] != self->rb_nodes[standin_other]);
657 standin->rb_nodes[standin_other] = self->rb_nodes[standin_other];
658 RB_SET_FATHER(standin->rb_nodes[standin_other], standin);
661 * Now copy the result of self to standin and then replace
662 * self with standin in the tree.
664 RB_COPY_PROPERTIES(standin, self);
665 RB_SET_FATHER(standin, RB_FATHER(self));
666 RB_FATHER(standin)->rb_nodes[RB_POSITION(standin)] = standin;
680 KASSERT(rb_tree_check_node(rbt, standin, NULL, false));
681 KASSERT(RB_FATHER_SENTINEL_P(standin)
683 KASSERT(RB_LEFT_SENTINEL_P(standin)
684 || rb_tree_check_node(rbt, standin->rb_left, NULL, false));
685 KASSERT(RB_RIGHT_SENTINEL_P(standin)
686 || rb_tree_check_node(rbt, standin->rb_right, NULL, false));
692 KASSERT(rb_tree_check_node(rbt, standin, NULL, true));
751 struct rb_node *standin, *self = RB_ITEMTONODE(rbto, object);
808 standin = RB_ITEMTONODE(rbto, rb_tree_iterate(rbt, object, which));
809 rb_tree_swap_prune_and_rebalance(rbt, self, standin);