Lines Matching refs:tt
103 rn_new_radix_mask(struct radix_node *tt,
417 struct radix_node *tt = nodes, *t = tt + 1; in rn_newpair() local
420 t->rn_left = tt; in rn_newpair()
422 tt->rn_bit = -1; in rn_newpair()
423 tt->rn_key = (caddr_t)v; in rn_newpair()
424 tt->rn_parent = t; in rn_newpair()
425 tt->rn_flags = t->rn_flags = RNF_ACTIVE; in rn_newpair()
426 tt->rn_mklist = t->rn_mklist = NULL; in rn_newpair()
428 tt->rn_info = rn_nodenum++; t->rn_info = rn_nodenum++; in rn_newpair()
429 tt->rn_twin = t; in rn_newpair()
430 tt->rn_ybro = rn_clist; in rn_newpair()
431 rn_clist = tt; in rn_newpair()
446 struct radix_node *tt; in rn_insert() local
487 tt = t->rn_left; in rn_insert()
498 t->rn_right = tt; in rn_insert()
507 return tt; in rn_insert()
613 rn_new_radix_mask(struct radix_node *tt, struct radix_mask *next) in rn_new_radix_mask() argument
618 m->rm_bit = tt->rn_bit; in rn_new_radix_mask()
619 m->rm_flags = tt->rn_flags; in rn_new_radix_mask()
620 if (tt->rn_flags & RNF_NORMAL) { in rn_new_radix_mask()
621 m->rm_leaf = tt; in rn_new_radix_mask()
623 m->rm_mask = tt->rn_mask; in rn_new_radix_mask()
626 tt->rn_mklist = m; in rn_new_radix_mask()
635 struct radix_node *t, *x = NULL, *tt; in rn_addroute() local
660 saved_tt = tt = rn_insert(v, head, &keyduplicated, treenodes); in rn_addroute()
662 for (t = tt; tt; t = tt, tt = tt->rn_dupedkey) { in rn_addroute()
663 if (tt->rn_mask == netmask) { in rn_addroute()
667 (tt->rn_mask && in rn_addroute()
668 ((b_leaf < tt->rn_bit) /* index(netmask) > node */ in rn_addroute()
669 || rn_refines(netmask, tt->rn_mask) in rn_addroute()
670 || rn_lexobetter(netmask, tt->rn_mask)))) { in rn_addroute()
684 if (tt == saved_tt) { in rn_addroute()
687 (tt = treenodes)->rn_dupedkey = t; in rn_addroute()
688 tt->rn_flags = t->rn_flags; in rn_addroute()
689 tt->rn_parent = x = t->rn_parent; in rn_addroute()
690 t->rn_parent = tt; /* parent */ in rn_addroute()
692 x->rn_left = tt; in rn_addroute()
694 x->rn_right = tt; in rn_addroute()
696 saved_tt = tt; x = xx; in rn_addroute()
698 (tt = treenodes)->rn_dupedkey = t->rn_dupedkey; in rn_addroute()
699 t->rn_dupedkey = tt; in rn_addroute()
700 tt->rn_parent = t; /* parent */ in rn_addroute()
701 if (tt->rn_dupedkey) { /* parent */ in rn_addroute()
702 tt->rn_dupedkey->rn_parent = tt; /* parent */ in rn_addroute()
706 t = tt + 1; tt->rn_info = rn_nodenum++; t->rn_info = rn_nodenum++; in rn_addroute()
707 tt->rn_twin = t; tt->rn_ybro = rn_clist; rn_clist = tt; in rn_addroute()
709 tt->rn_key = (caddr_t) v; in rn_addroute()
710 tt->rn_bit = -1; in rn_addroute()
711 tt->rn_flags = RNF_ACTIVE; in rn_addroute()
718 tt->rn_mask = netmask; in rn_addroute()
719 tt->rn_bit = x->rn_bit; in rn_addroute()
720 tt->rn_flags |= x->rn_flags & RNF_NORMAL; in rn_addroute()
756 return tt; /* can't lift at all */ in rn_addroute()
758 b_leaf = tt->rn_bit; in rn_addroute()
778 if (tt->rn_flags & RNF_NORMAL) { in rn_addroute()
781 return tt; in rn_addroute()
788 tt->rn_mklist = m; in rn_addroute()
789 return tt; in rn_addroute()
796 *mp = rn_new_radix_mask(tt, *mp); in rn_addroute()
797 return tt; in rn_addroute()
803 struct radix_node *t, *p, *x, *tt; in rn_delete() local
812 tt = rn_search(v, x); in rn_delete()
815 saved_tt = tt; in rn_delete()
817 if (tt == 0 || in rn_delete()
818 Bcmp(v + head_off, tt->rn_key + head_off, vlen - head_off)) { in rn_delete()
829 while (tt->rn_mask != netmask) { in rn_delete()
830 if ((tt = tt->rn_dupedkey) == 0) { in rn_delete()
835 if (tt->rn_mask == 0 || (saved_m = m = tt->rn_mklist) == 0) { in rn_delete()
838 if (tt->rn_flags & RNF_NORMAL) { in rn_delete()
839 if (m->rm_leaf != tt || m->rm_refs > 0) { in rn_delete()
844 if (m->rm_mask != tt->rn_mask) { in rn_delete()
852 b = -1 - tt->rn_bit; in rn_delete()
864 if (tt->rn_mklist == m) { in rn_delete()
865 tt->rn_mklist = *mp; in rn_delete()
873 if (tt->rn_flags & RNF_NORMAL) { in rn_delete()
881 if (tt->rn_flags & RNF_ROOT) { in rn_delete()
887 for (t = rn_clist; t && t->rn_ybro != tt; t = t->rn_ybro) { in rn_delete()
890 t->rn_ybro = tt->rn_ybro; in rn_delete()
893 t = tt->rn_parent; in rn_delete()
900 if (tt == saved_tt) { in rn_delete()
903 if (t->rn_left == tt) { in rn_delete()
910 for (x = p = saved_tt; p && p->rn_dupedkey != tt;) { in rn_delete()
914 p->rn_dupedkey = tt->rn_dupedkey; in rn_delete()
915 if (tt->rn_dupedkey) { /* parent */ in rn_delete()
916 tt->rn_dupedkey->rn_parent = p; in rn_delete()
923 t = tt + 1; in rn_delete()
944 if (t->rn_left == tt) { in rn_delete()
990 x = tt + 1; in rn_delete()
1009 tt->rn_flags &= ~RNF_ACTIVE; in rn_delete()
1010 tt[1].rn_flags &= ~RNF_ACTIVE; in rn_delete()
1011 return tt; in rn_delete()
1214 struct radix_node *t, *tt, *ttt; in rn_inithead() local
1228 tt = t->rn_left; in rn_inithead()
1229 tt->rn_flags = t->rn_flags = RNF_ROOT | RNF_ACTIVE; in rn_inithead()
1230 tt->rn_bit = (short)(-1 - off); in rn_inithead()
1231 *ttt = *tt; in rn_inithead()