Lines Matching refs:cip
372 struct indir *cip; in s_read() local
379 for (cip = ip; cip != NULL;) { in s_read()
380 if (cip->shift) { in s_read()
381 idx = (offset >> cip->shift) & NMASK; in s_read()
382 up = cip->array[idx]; in s_read()
383 cip = (struct indir *)up; in s_read()
387 return (cip->array[idx]); in s_read()
399 struct indir *cip, *lip[10]; in s_write() local
407 cip = ip; in s_write()
409 lip[li++] = cip; in s_write()
410 if (cip->shift) { in s_write()
411 idx = (offset >> cip->shift) & NMASK; in s_write()
412 up = cip->array[idx]; in s_write()
414 cip = (struct indir *)up; in s_write()
418 cip->array[idx] = in s_write()
419 (uintptr_t)new_indir(cip->shift - nshift); in s_write()
420 if (cip->array[idx] == 0) in s_write()
422 cip->used++; in s_write()
423 up = cip->array[idx]; in s_write()
424 cip = (struct indir *)up; in s_write()
429 up = cip->array[idx]; in s_write()
431 cip->used--; in s_write()
432 cip->array[idx] = ptr; in s_write()
434 cip->used++; in s_write()
437 if (cip->used != 0 || li == 1) in s_write()
440 while (cip->used == 0 && cip != ip) { in s_write()
444 KASSERT(up == (uintptr_t)cip, ("md screwed up")); in s_write()
445 del_indir(cip); in s_write()
448 cip = lip[li]; in s_write()