Lines Matching refs:uf
541 struct unr *up, *uf, *us; in optimize_unr() local
551 TAILQ_FOREACH(uf, &uh->head, list) { in optimize_unr()
552 if (uf->len >= NBITS) in optimize_unr()
555 if (is_bitmap(uh, uf)) in optimize_unr()
557 l = uf->len; in optimize_unr()
558 up = uf; in optimize_unr()
572 us = uf; in optimize_unr()
584 uf = TAILQ_NEXT(us, list); in optimize_unr()
592 if (!is_bitmap(uh, uf)) { in optimize_unr()
593 if (uf->ptr == NULL) in optimize_unr()
594 bit_nclear(ub->map, a, a + uf->len - 1); in optimize_unr()
596 bit_nset(ub->map, a, a + uf->len - 1); in optimize_unr()
597 uf->ptr = ub; in optimize_unr()
598 uf->len += a; in optimize_unr()
599 us = uf; in optimize_unr()
601 ubf = uf->ptr; in optimize_unr()
602 for (l = 0; l < uf->len; l++, a++) { in optimize_unr()
608 uf->len = a; in optimize_unr()
609 delete_unr(uh, uf->ptr); in optimize_unr()
610 uf->ptr = ub; in optimize_unr()
611 us = uf; in optimize_unr()
616 uf = TAILQ_NEXT(us, list); in optimize_unr()
617 if (uf == NULL) in optimize_unr()
619 if (uf->len + us->len > NBITS) in optimize_unr()
621 if (uf->ptr == NULL) { in optimize_unr()
622 bit_nclear(ub->map, us->len, us->len + uf->len - 1); in optimize_unr()
623 us->len += uf->len; in optimize_unr()
624 TAILQ_REMOVE(&uh->head, uf, list); in optimize_unr()
625 delete_unr(uh, uf); in optimize_unr()
626 } else if (uf->ptr == uh) { in optimize_unr()
627 bit_nset(ub->map, us->len, us->len + uf->len - 1); in optimize_unr()
628 us->len += uf->len; in optimize_unr()
629 TAILQ_REMOVE(&uh->head, uf, list); in optimize_unr()
630 delete_unr(uh, uf); in optimize_unr()
632 ubf = uf->ptr; in optimize_unr()
633 for (l = 0; l < uf->len; l++, us->len++) { in optimize_unr()
639 TAILQ_REMOVE(&uh->head, uf, list); in optimize_unr()
641 delete_unr(uh, uf); in optimize_unr()