Lines Matching refs:root
43 radix_max(struct radix_tree_root *root) in radix_max() argument
45 return ((1UL << (root->height * RADIX_TREE_MAP_SHIFT)) - 1UL); in radix_max()
55 radix_tree_lookup(struct radix_tree_root *root, unsigned long index) in radix_tree_lookup() argument
62 node = root->rnode; in radix_tree_lookup()
63 height = root->height - 1; in radix_tree_lookup()
64 if (index > radix_max(root)) in radix_tree_lookup()
76 radix_tree_iter_find(struct radix_tree_root *root, struct radix_tree_iter *iter, in radix_tree_iter_find() argument
84 node = root->rnode; in radix_tree_iter_find()
87 height = root->height - 1; in radix_tree_iter_find()
88 if (height == -1 || index > radix_max(root)) in radix_tree_iter_find()
115 radix_tree_delete(struct radix_tree_root *root, unsigned long index) in radix_tree_delete() argument
124 node = root->rnode; in radix_tree_delete()
125 height = root->height - 1; in radix_tree_delete()
126 if (index > radix_max(root)) in radix_tree_delete()
148 if (node == root->rnode) { in radix_tree_delete()
149 root->rnode = NULL; in radix_tree_delete()
150 root->height = 0; in radix_tree_delete()
162 radix_tree_iter_delete(struct radix_tree_root *root, in radix_tree_iter_delete() argument
165 radix_tree_delete(root, iter->index); in radix_tree_iter_delete()
169 radix_tree_insert(struct radix_tree_root *root, unsigned long index, void *item) in radix_tree_insert() argument
181 node = root->rnode; in radix_tree_insert()
185 node = kmalloc(sizeof(*node), M_DRM, root->gfp_mask | M_ZERO); in radix_tree_insert()
188 root->rnode = node; in radix_tree_insert()
189 root->height++; in radix_tree_insert()
193 while (radix_max(root) < index) { in radix_tree_insert()
196 if (root->height == RADIX_TREE_MAX_HEIGHT) in radix_tree_insert()
204 node = kmalloc(sizeof(*node), M_DRM, root->gfp_mask | M_ZERO); in radix_tree_insert()
207 node->slots[0] = root->rnode; in radix_tree_insert()
209 root->rnode = node; in radix_tree_insert()
211 root->height++; in radix_tree_insert()
215 height = root->height - 1; in radix_tree_insert()
228 root->gfp_mask | M_ZERO); in radix_tree_insert()
233 if (root->rnode->count == 0) { in radix_tree_insert()
234 kfree(root->rnode); in radix_tree_insert()
235 root->rnode = NULL; in radix_tree_insert()
236 root->height = 0; in radix_tree_insert()