Lines Matching +full:root +full:- +full:node
1 // SPDX-License-Identifier: GPL-2.0
12 item_tag_set(struct radix_tree_root *root, unsigned long index, int tag) in item_tag_set() argument
14 return radix_tree_tag_set(root, index, tag); in item_tag_set()
18 item_tag_clear(struct radix_tree_root *root, unsigned long index, int tag) in item_tag_clear() argument
20 return radix_tree_tag_clear(root, index, tag); in item_tag_clear()
23 int item_tag_get(struct radix_tree_root *root, unsigned long index, int tag) in item_tag_get() argument
25 return radix_tree_tag_get(root, index, tag); in item_tag_get()
32 ret->index = index; in item_create()
33 ret->order = order; in item_create()
37 int item_insert(struct radix_tree_root *root, unsigned long index) in item_insert() argument
40 int err = radix_tree_insert(root, item->index, item); in item_insert()
50 assert(item->order < BITS_PER_LONG); in item_sanity()
51 mask = (1UL << item->order) - 1; in item_sanity()
52 assert((item->index | mask) == (index | mask)); in item_sanity()
61 int item_delete(struct radix_tree_root *root, unsigned long index) in item_delete() argument
63 struct item *item = radix_tree_delete(root, index); in item_delete()
85 call_rcu(&item->rcu_head, item_free_rcu); in item_delete_rcu()
91 void item_check_present(struct radix_tree_root *root, unsigned long index) in item_check_present() argument
95 item = radix_tree_lookup(root, index); in item_check_present()
100 struct item *item_lookup(struct radix_tree_root *root, unsigned long index) in item_lookup() argument
102 return radix_tree_lookup(root, index); in item_lookup()
105 void item_check_absent(struct radix_tree_root *root, unsigned long index) in item_check_absent() argument
109 item = radix_tree_lookup(root, index); in item_check_absent()
116 void item_gang_check_present(struct radix_tree_root *root, in item_gang_check_present() argument
128 if (nr_to_find > (nr - into)) in item_gang_check_present()
129 nr_to_find = nr - into; in item_gang_check_present()
131 nfound = radix_tree_gang_lookup(root, (void **)items, in item_gang_check_present()
135 assert(items[i]->index == start + into + i); in item_gang_check_present()
143 void item_full_scan(struct radix_tree_root *root, unsigned long start, in item_full_scan() argument
154 while ((nfound = radix_tree_gang_lookup(root, (void **)items, into, in item_full_scan()
158 assert(items[i]->index == this_index); in item_full_scan()
161 // printf("Found 0x%08lx->0x%08lx\n", in item_full_scan()
162 // items[0]->index, items[nfound-1]->index); in item_full_scan()
167 nfound = radix_tree_gang_lookup(root, (void **)items, in item_full_scan()
172 /* Use the same pattern as tag_pages_for_writeback() in mm/page-writeback.c */
210 if (slot->tags[tag][i]) { in verify_node()
217 tag, slot->shift, tagged, anyset); in verify_node()
221 printf("%016lx ", slot->tags[j][i]); in verify_node()
229 if (slot->shift > 0) { in verify_node()
231 if (slot->slots[i]) in verify_node()
232 if (verify_node(slot->slots[i], tag, in verify_node()
233 !!test_bit(i, slot->tags[tag]))) { in verify_node()
238 printf("%016lx ", slot->tags[j][i]); in verify_node()
247 void verify_tag_consistency(struct radix_tree_root *root, unsigned int tag) in verify_tag_consistency() argument
249 struct radix_tree_node *node = root->xa_head; in verify_tag_consistency() local
250 if (!radix_tree_is_internal_node(node)) in verify_tag_consistency()
252 verify_node(node, tag, !!root_tag_get(root, tag)); in verify_tag_consistency()
270 void tree_verify_min_height(struct radix_tree_root *root, int maxindex) in tree_verify_min_height() argument
273 struct radix_tree_node *node = root->xa_head; in tree_verify_min_height() local
274 if (!radix_tree_is_internal_node(node)) { in tree_verify_min_height()
279 node = entry_to_node(node); in tree_verify_min_height()
280 assert(maxindex <= node_maxindex(node)); in tree_verify_min_height()
282 shift = node->shift; in tree_verify_min_height()
284 assert(maxindex > shift_maxindex(shift - RADIX_TREE_MAP_SHIFT)); in tree_verify_min_height()