Lines Matching refs:index
92 pctrie_slot(struct pctrie_node *node, uint64_t index) in pctrie_slot() argument
94 return ((index >> node->pn_clev) & (PCTRIE_COUNT - 1)); in pctrie_slot()
102 pctrie_keybarr(struct pctrie_node *node, uint64_t index, int *slot) in pctrie_keybarr() argument
104 index = (index - node->pn_owner) >> node->pn_clev; in pctrie_keybarr()
105 if (index >= PCTRIE_COUNT) in pctrie_keybarr()
107 *slot = index; in pctrie_keybarr()
171 pctrie_child(struct pctrie *ptree, struct pctrie_node *node, uint64_t index) in pctrie_child() argument
174 &node->pn_child[pctrie_slot(node, index)]); in pctrie_child()
235 pctrie_addnode(struct pctrie_node *node, uint64_t index, in pctrie_addnode() argument
240 slot = pctrie_slot(node, index); in pctrie_addnode()
275 pctrie_match_value(struct pctrie_node *node, uint64_t index) in pctrie_match_value() argument
280 *m != index) in pctrie_match_value()
291 uint64_t index, struct pctrie_node **parent_out, in _pctrie_lookup_node() argument
309 if (!pctrie_keybarr(node, index, &slot)) in _pctrie_lookup_node()
315 while (!pctrie_isleaf(node) && !pctrie_keybarr(node, index, &slot)) { in _pctrie_lookup_node()
332 pctrie_lookup(struct pctrie *ptree, uint64_t index) in pctrie_lookup() argument
336 node = _pctrie_lookup_node(ptree, NULL, index, &parent, NULL, in pctrie_lookup()
338 return (pctrie_match_value(node, index)); in pctrie_lookup()
347 pctrie_lookup_unlocked(struct pctrie *ptree, uint64_t index, smr_t smr) in pctrie_lookup_unlocked() argument
353 node = _pctrie_lookup_node(ptree, NULL, index, &parent, smr, in pctrie_lookup_unlocked()
355 res = pctrie_match_value(node, index); in pctrie_lookup_unlocked()
365 pctrie_iter_lookup(struct pctrie_iter *it, uint64_t index) in pctrie_iter_lookup() argument
369 node = _pctrie_lookup_node(it->ptree, it->node, index, &it->node, in pctrie_iter_lookup()
371 it->index = index; in pctrie_iter_lookup()
372 return (pctrie_match_value(node, index)); in pctrie_iter_lookup()
454 it->index = *val; in pctrie_iter_insert_lookup()
459 (uintmax_t)it->index); in pctrie_iter_insert_lookup()
473 uint64_t index, newind; in pctrie_insert_node() local
492 index = *val; in pctrie_insert_node()
508 child->pn_clev = rounddown(ilog2(index ^ newind), PCTRIE_WIDTH); in pctrie_insert_node()
510 child->pn_owner = index & -(child->pn_owner << child->pn_clev); in pctrie_insert_node()
514 pctrie_addnode(child, index, pctrie_toleaf(val), PCTRIE_UNSERIALIZED); in pctrie_insert_node()
527 uint64_t index = it->index + stride; in pctrie_iter_stride() local
530 if ((stride > 0) != (index > it->index)) in pctrie_iter_stride()
533 if ((index < it->limit) != (it->index < it->limit)) in pctrie_iter_stride()
536 return (pctrie_iter_lookup(it, index)); in pctrie_iter_stride()
565 uint64_t index, uint64_t *value[], int count, in _pctrie_lookup_range() argument
574 node = _pctrie_lookup_node(ptree, parent, index + i, &parent, in _pctrie_lookup_range()
576 if ((val = pctrie_match_value(node, index + i)) == NULL) in _pctrie_lookup_range()
579 base = (index + i) % PCTRIE_COUNT; in _pctrie_lookup_range()
632 pctrie_lookup_range(struct pctrie *ptree, uint64_t index, in pctrie_lookup_range() argument
635 return (_pctrie_lookup_range(ptree, NULL, index, value, count, NULL, in pctrie_lookup_range()
647 pctrie_lookup_range_unlocked(struct pctrie *ptree, uint64_t index, in pctrie_lookup_range_unlocked() argument
653 res = _pctrie_lookup_range(ptree, NULL, index, value, count, NULL, in pctrie_lookup_range_unlocked()
665 pctrie_iter_lookup_range(struct pctrie_iter *it, uint64_t index, in pctrie_iter_lookup_range() argument
668 return (_pctrie_lookup_range(it->ptree, it->node, index, value, count, in pctrie_iter_lookup_range()
678 uint64_t index, struct pctrie_node **parent_out, uint64_t limit) in _pctrie_lookup_ge() argument
685 node = _pctrie_lookup_node(ptree, node, index, &parent, in _pctrie_lookup_ge()
692 if (node == PCTRIE_NULL || *pctrie_toval(node) < index) { in _pctrie_lookup_ge()
696 slot = pctrie_slot(parent, index) + 1; in _pctrie_lookup_ge()
731 pctrie_lookup_ge(struct pctrie *ptree, uint64_t index) in pctrie_lookup_ge() argument
733 return (_pctrie_lookup_ge(ptree, NULL, index, NULL, 0)); in pctrie_lookup_ge()
741 pctrie_iter_lookup_ge(struct pctrie_iter *it, uint64_t index) in pctrie_iter_lookup_ge() argument
745 m = _pctrie_lookup_ge(it->ptree, it->node, index, &it->node, it->limit); in pctrie_iter_lookup_ge()
747 it->index = *m; in pctrie_iter_lookup_ge()
758 uint64_t index = it->index + jump; in pctrie_iter_jump_ge() local
761 if ((jump > 0) != (index > it->index)) in pctrie_iter_jump_ge()
763 if (it->limit != 0 && index >= it->limit) in pctrie_iter_jump_ge()
765 return (pctrie_iter_lookup_ge(it, index)); in pctrie_iter_jump_ge()
774 uint64_t index, struct pctrie_node **parent_out, uint64_t limit) in _pctrie_lookup_le() argument
781 node = _pctrie_lookup_node(ptree, node, index, &parent, NULL, in _pctrie_lookup_le()
788 if (node == PCTRIE_NULL || *pctrie_toval(node) > index) { in _pctrie_lookup_le()
792 slot = pctrie_slot(parent, index); in _pctrie_lookup_le()
828 pctrie_lookup_le(struct pctrie *ptree, uint64_t index) in pctrie_lookup_le() argument
830 return (_pctrie_lookup_le(ptree, NULL, index, NULL, 0)); in pctrie_lookup_le()
835 uint64_t index) in pctrie_subtree_lookup_lt() argument
837 if (index == 0) in pctrie_subtree_lookup_lt()
839 return (_pctrie_lookup_le(ptree, node, index - 1, NULL, 0)); in pctrie_subtree_lookup_lt()
847 pctrie_iter_lookup_le(struct pctrie_iter *it, uint64_t index) in pctrie_iter_lookup_le() argument
851 m = _pctrie_lookup_le(it->ptree, it->node, index, &it->node, it->limit); in pctrie_iter_lookup_le()
853 it->index = *m; in pctrie_iter_lookup_le()
864 uint64_t index = it->index - jump; in pctrie_iter_jump_le() local
867 if ((jump > 0) != (index < it->index)) in pctrie_iter_jump_le()
869 if (it->limit != 0 && index <= it->limit) in pctrie_iter_jump_le()
871 return (pctrie_iter_lookup_le(it, index)); in pctrie_iter_jump_le()
880 pctrie_remove(struct pctrie *ptree, struct pctrie_node *node, uint64_t index) in pctrie_remove() argument
886 parentp = pctrie_child(ptree, node, index); in pctrie_remove()
891 slot = pctrie_slot(node, index); in pctrie_remove()
909 parentp = pctrie_child(ptree, node, index); in pctrie_remove()
919 pctrie_remove_lookup(struct pctrie *ptree, uint64_t index, in pctrie_remove_lookup() argument
925 node = _pctrie_lookup_node(ptree, NULL, index, &parent, NULL, in pctrie_remove_lookup()
927 m = pctrie_match_value(node, index); in pctrie_remove_lookup()
928 if (m != NULL && pctrie_remove(ptree, parent, index)) in pctrie_remove_lookup()
943 it->ptree, it->node, it->index), NULL, PCTRIE_LOCKED), it->index), in pctrie_iter_remove()
945 (uintmax_t)it->index)); in pctrie_iter_remove()
946 if (pctrie_remove(it->ptree, it->node, it->index)) { in pctrie_iter_remove()
962 node = pctrie_node_load(pctrie_child(it->ptree, it->node, it->index), in pctrie_iter_value()