Lines Matching refs:offset
88 unsigned int offset = (index >> parent->shift) & RADIX_TREE_MAP_MASK; in radix_tree_descend() local
89 void __rcu **entry = rcu_dereference_raw(parent->slots[offset]); in radix_tree_descend()
92 return offset; in radix_tree_descend()
101 int offset) in tag_set() argument
103 __set_bit(offset, node->tags[tag]); in tag_set()
107 int offset) in tag_clear() argument
109 __clear_bit(offset, node->tags[tag]); in tag_clear()
113 int offset) in tag_get() argument
115 return test_bit(offset, node->tags[tag]); in tag_get()
181 unsigned long offset) in radix_tree_find_next_bit() argument
185 if (offset < RADIX_TREE_MAP_SIZE) { in radix_tree_find_next_bit()
188 addr += offset / BITS_PER_LONG; in radix_tree_find_next_bit()
189 tmp = *addr >> (offset % BITS_PER_LONG); in radix_tree_find_next_bit()
191 return __ffs(tmp) + offset; in radix_tree_find_next_bit()
192 offset = (offset + BITS_PER_LONG) & ~(BITS_PER_LONG - 1); in radix_tree_find_next_bit()
193 while (offset < RADIX_TREE_MAP_SIZE) { in radix_tree_find_next_bit()
196 return __ffs(tmp) + offset; in radix_tree_find_next_bit()
197 offset += BITS_PER_LONG; in radix_tree_find_next_bit()
223 unsigned long offset) in next_index() argument
225 return (index & ~node_maxindex(node)) + (offset << node->shift); in next_index()
235 unsigned int shift, unsigned int offset, in radix_tree_node_alloc() argument
281 ret->offset = offset; in radix_tree_node_alloc()
560 parent->slots[node->offset] = NULL; in delete_node()
605 unsigned int shift, offset = 0; in __radix_tree_create() local
625 offset, 0, 0); in __radix_tree_create()
636 offset = radix_tree_descend(node, &child, index); in __radix_tree_create()
637 slot = &node->slots[offset]; in __radix_tree_create()
658 unsigned offset = 0; in radix_tree_free_nodes() local
662 void *entry = rcu_dereference_raw(child->slots[offset]); in radix_tree_free_nodes()
665 offset = 0; in radix_tree_free_nodes()
668 offset++; in radix_tree_free_nodes()
669 while (offset == RADIX_TREE_MAP_SIZE) { in radix_tree_free_nodes()
671 offset = child->offset + 1; in radix_tree_free_nodes()
721 unsigned offset = get_slot_offset(node, slot); in radix_tree_insert() local
722 BUG_ON(tag_get(node, 0, offset)); in radix_tree_insert()
723 BUG_ON(tag_get(node, 1, offset)); in radix_tree_insert()
724 BUG_ON(tag_get(node, 2, offset)); in radix_tree_insert()
763 unsigned offset; in __radix_tree_lookup() local
766 offset = radix_tree_descend(parent, &node, index); in __radix_tree_lookup()
767 slot = parent->slots + offset; in __radix_tree_lookup()
836 unsigned int tag, unsigned int offset) in node_tag_get() argument
839 return tag_get(node, tag, offset); in node_tag_get()
855 unsigned offset = get_slot_offset(node, slot); in calculate_count() local
856 bool free = node_tag_get(root, node, IDR_FREE, offset); in calculate_count()
940 unsigned int tag, unsigned int offset) in node_tag_set() argument
943 if (tag_get(node, tag, offset)) in node_tag_set()
945 tag_set(node, tag, offset); in node_tag_set()
946 offset = node->offset; in node_tag_set()
977 unsigned offset; in radix_tree_tag_set() local
980 offset = radix_tree_descend(parent, &node, index); in radix_tree_tag_set()
983 if (!tag_get(parent, tag, offset)) in radix_tree_tag_set()
984 tag_set(parent, tag, offset); in radix_tree_tag_set()
997 unsigned int tag, unsigned int offset) in node_tag_clear() argument
1000 if (!tag_get(node, tag, offset)) in node_tag_clear()
1002 tag_clear(node, tag, offset); in node_tag_clear()
1006 offset = node->offset; in node_tag_clear()
1034 int offset = 0; in radix_tree_tag_clear() local
1044 offset = radix_tree_descend(parent, &node, index); in radix_tree_tag_clear()
1048 node_tag_clear(root, parent, tag, offset); in radix_tree_tag_clear()
1095 unsigned offset; in radix_tree_tag_get() local
1098 offset = radix_tree_descend(parent, &node, index); in radix_tree_tag_get()
1100 if (!tag_get(parent, tag, offset)) in radix_tree_tag_get()
1112 struct radix_tree_node *node, unsigned offset, in set_iter_tags() argument
1115 unsigned tag_long = offset / BITS_PER_LONG; in set_iter_tags()
1116 unsigned tag_bit = offset % BITS_PER_LONG; in set_iter_tags()
1159 unsigned long index, offset, maxindex; in radix_tree_next_chunk() local
1195 offset = radix_tree_descend(node, &child, index); in radix_tree_next_chunk()
1198 !tag_get(node, tag, offset) : !child) { in radix_tree_next_chunk()
1204 offset = radix_tree_find_next_bit(node, tag, in radix_tree_next_chunk()
1205 offset + 1); in radix_tree_next_chunk()
1207 while (++offset < RADIX_TREE_MAP_SIZE) { in radix_tree_next_chunk()
1209 node->slots[offset]); in radix_tree_next_chunk()
1214 index += offset << node->shift; in radix_tree_next_chunk()
1218 if (offset == RADIX_TREE_MAP_SIZE) in radix_tree_next_chunk()
1220 child = rcu_dereference_raw(node->slots[offset]); in radix_tree_next_chunk()
1230 iter->index = (index &~ node_maxindex(node)) | offset; in radix_tree_next_chunk()
1235 set_iter_tags(iter, node, offset, tag); in radix_tree_next_chunk()
1237 return node->slots + offset; in radix_tree_next_chunk()
1369 unsigned offset = get_slot_offset(node, slot); in __radix_tree_delete() local
1373 node_tag_set(root, node, IDR_FREE, offset); in __radix_tree_delete()
1376 node_tag_clear(root, node, tag, offset); in __radix_tree_delete()
1483 unsigned int shift, offset = 0; in idr_get_free() local
1507 offset, 0, 0); in idr_get_free()
1518 offset = radix_tree_descend(node, &child, start); in idr_get_free()
1519 if (!tag_get(node, IDR_FREE, offset)) { in idr_get_free()
1520 offset = radix_tree_find_next_bit(node, IDR_FREE, in idr_get_free()
1521 offset + 1); in idr_get_free()
1522 start = next_index(start, node, offset); in idr_get_free()
1525 while (offset == RADIX_TREE_MAP_SIZE) { in idr_get_free()
1526 offset = node->offset + 1; in idr_get_free()
1532 child = rcu_dereference_raw(node->slots[offset]); in idr_get_free()
1534 slot = &node->slots[offset]; in idr_get_free()
1543 set_iter_tags(iter, node, offset, IDR_FREE); in idr_get_free()