Lines Matching full:it
272 * insertion if it replaces a null leaf. Return the insertion location if the
289 * The owner of record for root is not really important because it in pctrie_insert_lookup_compound()
376 * to clear it after the final section has exited so lookup can not in pctrie_insert_node()
377 * return false negatives. It is done here because it will be in pctrie_insert_node()
526 _pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index, smr_t smr, in _pctrie_iter_lookup() argument
531 it->index = index; in _pctrie_iter_lookup()
532 node = _pctrie_lookup_node(it->ptree, it->node, index, &it->node, in _pctrie_iter_lookup()
541 pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index) in pctrie_iter_lookup() argument
543 return (_pctrie_iter_lookup(it, index, NULL, PCTRIE_LOCKED)); in pctrie_iter_lookup()
552 pctrie_iter_insert_lookup(struct pctrie_iter *it, uint64_t *val) in pctrie_iter_insert_lookup() argument
556 it->index = *val; in pctrie_iter_insert_lookup()
557 node = _pctrie_lookup_node(it->ptree, it->node, *val, &it->node, in pctrie_iter_insert_lookup()
560 if (it->node == NULL) in pctrie_iter_insert_lookup()
561 pctrie_node_store(pctrie_root(it->ptree), in pctrie_iter_insert_lookup()
564 pctrie_addnode(it->node, it->index, in pctrie_iter_insert_lookup()
568 if (__predict_false(pctrie_match_value(node, it->index) != NULL)) in pctrie_iter_insert_lookup()
570 (uintmax_t)it->index); in pctrie_iter_insert_lookup()
577 return (pctrie_child(it->ptree, it->node, it->index)); in pctrie_iter_insert_lookup()
585 _pctrie_iter_stride(struct pctrie_iter *it, int stride, smr_t smr, in _pctrie_iter_stride() argument
588 uint64_t index = it->index + stride; in _pctrie_iter_stride()
591 if ((stride > 0) != (index > it->index)) in _pctrie_iter_stride()
594 if ((index < it->limit) != (it->index < it->limit)) in _pctrie_iter_stride()
597 return (_pctrie_iter_lookup(it, index, smr, access)); in _pctrie_iter_stride()
605 pctrie_iter_stride(struct pctrie_iter *it, int stride) in pctrie_iter_stride() argument
607 return (_pctrie_iter_stride(it, stride, NULL, PCTRIE_LOCKED)); in pctrie_iter_stride()
615 pctrie_iter_next(struct pctrie_iter *it) in pctrie_iter_next() argument
617 return (_pctrie_iter_stride(it, 1, NULL, PCTRIE_LOCKED)); in pctrie_iter_next()
625 pctrie_iter_prev(struct pctrie_iter *it) in pctrie_iter_prev() argument
627 return (_pctrie_iter_stride(it, -1, NULL, PCTRIE_LOCKED)); in pctrie_iter_prev()
697 pctrie_iter_lookup_ge(struct pctrie_iter *it, uint64_t index) in pctrie_iter_lookup_ge() argument
701 m = _pctrie_lookup_ge(it->ptree, it->node, index, &it->node, it->limit); in pctrie_iter_lookup_ge()
703 it->index = *m; in pctrie_iter_lookup_ge()
712 pctrie_iter_jump_ge(struct pctrie_iter *it, int64_t jump) in pctrie_iter_jump_ge() argument
714 uint64_t index = it->index + jump; in pctrie_iter_jump_ge()
717 if ((jump > 0) != (index > it->index)) in pctrie_iter_jump_ge()
719 if (it->limit != 0 && index >= it->limit) in pctrie_iter_jump_ge()
721 return (pctrie_iter_lookup_ge(it, index)); in pctrie_iter_jump_ge()
801 pctrie_iter_lookup_le(struct pctrie_iter *it, uint64_t index) in pctrie_iter_lookup_le() argument
805 m = _pctrie_lookup_le(it->ptree, it->node, index, &it->node, it->limit); in pctrie_iter_lookup_le()
807 it->index = *m; in pctrie_iter_lookup_le()
816 pctrie_iter_jump_le(struct pctrie_iter *it, int64_t jump) in pctrie_iter_jump_le() argument
818 uint64_t index = it->index - jump; in pctrie_iter_jump_le()
821 if ((jump > 0) != (index < it->index)) in pctrie_iter_jump_le()
823 if (it->limit != 0 && index <= it->limit) in pctrie_iter_jump_le()
825 return (pctrie_iter_lookup_le(it, index)); in pctrie_iter_jump_le()
830 * 'node'. If doing so causes 'node' to have only one child, purge it from the
831 * pctrie and save it in *freenode for later disposal.
899 * adjust the path if it's last member is to be freed.
902 pctrie_iter_remove(struct pctrie_iter *it, struct pctrie_node **freenode) in pctrie_iter_remove() argument
905 it->ptree, it->node, it->index), NULL, PCTRIE_LOCKED), it->index), in pctrie_iter_remove()
907 (uintmax_t)it->index)); in pctrie_iter_remove()
908 pctrie_remove(it->ptree, it->node, it->index, freenode); in pctrie_iter_remove()
910 it->node = pctrie_parent(it->node); in pctrie_iter_remove()
918 pctrie_iter_value(struct pctrie_iter *it) in pctrie_iter_value() argument
922 node = pctrie_node_load(pctrie_child(it->ptree, it->node, it->index), in pctrie_iter_value()