Lines Matching refs:cip
363 struct indir *cip;
370 for (cip = ip; cip != NULL;) {
371 if (cip->shift) {
372 idx = (offset >> cip->shift) & NMASK;
373 up = cip->array[idx];
374 cip = (struct indir *)up;
378 return (cip->array[idx]);
390 struct indir *cip, *lip[10];
398 cip = ip;
400 lip[li++] = cip;
401 if (cip->shift) {
402 idx = (offset >> cip->shift) & NMASK;
403 up = cip->array[idx];
405 cip = (struct indir *)up;
409 cip->array[idx] =
410 (uintptr_t)new_indir(cip->shift - nshift);
411 if (cip->array[idx] == 0)
413 cip->used++;
414 up = cip->array[idx];
415 cip = (struct indir *)up;
420 up = cip->array[idx];
422 cip->used--;
423 cip->array[idx] = ptr;
425 cip->used++;
428 if (cip->used != 0 || li == 1)
431 while (cip->used == 0 && cip != ip) {
435 KASSERT(up == (uintptr_t)cip, ("md screwed up"));
436 del_indir(cip);
439 cip = lip[li];