Lines Matching refs:count
197 radix_leaf_alloc(radix_node *leaf, radix_slot_t slotIndex, int32 count)
199 if (count <= (int32)BITMAP_RADIX) {
201 uint32 n = BITMAP_RADIX - count;
212 // we could not allocate count here, update big_hint
213 if (leaf->big_hint >= count)
214 leaf->big_hint = count - 1;
220 radix_node_alloc(radix_node *node, radix_slot_t slotIndex, int32 count,
230 if (count <= node[i].big_hint) {
233 addr = radix_leaf_alloc(&node[i], slotIndex, count);
235 addr = radix_node_alloc(&node[i], slotIndex, count, radix,
238 node->u.available -= count;
248 // we could not allocate count in the subtree, update big_hint
249 if (node->big_hint >= count)
250 node->big_hint = count - 1;
256 radix_bitmap_alloc(radix_bitmap *bmp, uint32 count)
261 addr = radix_leaf_alloc(bmp->root, 0, count);
263 addr = radix_node_alloc(bmp->root, 0, count, bmp->radix, bmp->skip);
266 bmp->free_slots -= count;
273 radix_leaf_dealloc(radix_node *leaf, radix_slot_t slotIndex, uint32 count)
276 bitmap_t mask = ((bitmap_t)-1 >> (BITMAP_RADIX - count - n))
285 radix_node_dealloc(radix_node *node, radix_slot_t slotIndex, uint32 count,
288 node->u.available += count;
297 while (i <= skip && index < slotIndex + count) {
299 if (v > count)
300 v = count;
311 count -= v;
320 radix_bitmap_dealloc(radix_bitmap *bmp, radix_slot_t slotIndex, uint32 count)
323 radix_leaf_dealloc(bmp->root, slotIndex, count);
325 radix_node_dealloc(bmp->root, slotIndex, count, bmp->radix,
328 bmp->free_slots += count;