Lines Matching refs:cip
387 struct indir *cip; in s_read() local
394 for (cip = ip; cip != NULL;) { in s_read()
395 if (cip->shift) { in s_read()
396 idx = (offset >> cip->shift) & NMASK; in s_read()
397 up = cip->array[idx]; in s_read()
398 cip = (struct indir *)up; in s_read()
402 return (cip->array[idx]); in s_read()
414 struct indir *cip, *lip[10]; in s_write() local
422 cip = ip; in s_write()
424 lip[li++] = cip; in s_write()
425 if (cip->shift) { in s_write()
426 idx = (offset >> cip->shift) & NMASK; in s_write()
427 up = cip->array[idx]; in s_write()
429 cip = (struct indir *)up; in s_write()
433 cip->array[idx] = in s_write()
434 (uintptr_t)new_indir(cip->shift - nshift); in s_write()
435 if (cip->array[idx] == 0) in s_write()
437 cip->used++; in s_write()
438 up = cip->array[idx]; in s_write()
439 cip = (struct indir *)up; in s_write()
444 up = cip->array[idx]; in s_write()
446 cip->used--; in s_write()
447 cip->array[idx] = ptr; in s_write()
449 cip->used++; in s_write()
452 if (cip->used != 0 || li == 1) in s_write()
455 while (cip->used == 0 && cip != ip) { in s_write()
459 KASSERT(up == (uintptr_t)cip, ("md screwed up")); in s_write()
460 del_indir(cip); in s_write()
463 cip = lip[li]; in s_write()