Lines Matching refs:il

179 	struct idr_layer *il, *iln;
191 for (il = idr->free; il != NULL; il = iln) {
192 iln = il->ary[0];
193 free(il, M_IDR);
200 idr_remove_layer(struct idr_layer *il, int layer)
204 if (il == NULL)
207 free(il, M_IDR);
211 if (il->ary[i])
212 idr_remove_layer(il->ary[i], layer - 1);
229 struct idr_layer *il;
235 il = idr->top;
237 if (il == NULL || id > idr_max(idr))
243 while (layer && il) {
245 il->bitmap |= 1 << idx;
246 il = il->ary[idx];
255 if (il == NULL || (il->bitmap & (1 << idx)) != 0)
257 id, idr, il);
258 res = il->ary[idx];
259 il->ary[idx] = NULL;
260 il->bitmap |= 1 << idx;
280 struct idr_layer *il;
284 il = idr->top;
286 if (il == NULL || id > idr_max(idr))
288 while (layer && il) {
289 il = il->ary[idr_pos(id, layer)];
292 return (il);
298 struct idr_layer *il;
303 il = idr_find_layer_locked(idr, id);
307 if (il == NULL || (il->bitmap & (1 << idx))) {
310 res = il->ary[idx];
311 il->ary[idx] = ptr;
320 struct idr_layer *il;
324 il = idr_find_layer_locked(idr, id);
325 if (il != NULL)
326 res = il->ary[id & IDR_MASK];
364 struct idr_layer *il, *iln;
371 for (il = idr->free; il != NULL; il = il->ary[0])
377 iln = malloc(sizeof(*il), M_IDR, M_ZERO | gfp_mask);
382 il->ary[0] = iln;
383 il = iln;
385 head = il = iln;
390 il->ary[0] = idr->free;
399 struct idr_layer *il;
401 if ((il = idp->free) != NULL) {
402 idp->free = il->ary[0];
403 il->ary[0] = NULL;
405 return (il);
411 struct idr_layer *il;
413 if ((il = idr_free_list_get(idp)) != NULL) {
414 MPASS(il->bitmap != 0);
415 } else if ((il = malloc(sizeof(*il), M_IDR, M_ZERO | M_NOWAIT)) != NULL) {
416 bitmap_fill(&il->bitmap, IDR_SIZE);
417 } else if ((il = idr_preload_dequeue_locked(&DPCPU_GET(linux_idr_cache))) != NULL) {
418 bitmap_fill(&il->bitmap, IDR_SIZE);
422 return (il);
433 struct idr_layer *il;
450 il = idr_get(idr);
451 if (il == NULL)
453 il->ary[0] = idr->top;
455 il->bitmap &= ~1;
456 idr->top = il;
459 il = idr->top;
465 stack[layer] = il;
466 idx = ffsl(il->bitmap);
469 idr, il);
474 if (il->ary[idx] == NULL) {
475 il->ary[idx] = idr_get(idr);
476 if (il->ary[idx] == NULL)
479 il = il->ary[idx];
484 il->bitmap &= ~(1 << idx);
485 il->ary[idx] = ptr;
490 while (il->bitmap == 0 && ++layer < idr->layers) {
491 il = stack[layer];
492 il->bitmap &= ~(1 << idr_pos(id, layer));
520 struct idr_layer *il;
553 il = idr_get(idr);
554 if (il == NULL)
556 il->ary[0] = idr->top;
558 il->bitmap &= ~1;
559 idr->top = il;
562 il = idr->top;
568 stack[layer] = il;
571 idx = find_next_bit(&il->bitmap, IDR_SIZE, sidx);
574 idr, il);
592 if (il->ary[idx] == NULL) {
593 il->ary[idx] = idr_get(idr);
594 if (il->ary[idx] == NULL)
597 il = il->ary[idx];
602 il->bitmap &= ~(1 << idx);
603 il->ary[idx] = ptr;
608 while (il->bitmap == 0 && ++layer < idr->layers) {
609 il = stack[layer];
610 il->bitmap &= ~(1 << idr_pos(id, layer));
695 idr_for_each_layer(struct idr_layer *il, int offset, int layer,
700 if (il == NULL)
704 if (il->ary[i] == NULL)
706 err = f(i + offset, il->ary[i], data);
713 if (il->ary[i] == NULL)
715 err = idr_for_each_layer(il->ary[i],