Lines Matching refs:ip
289 struct indir *ip;
291 ip = malloc(sizeof *ip, M_MD, (md_malloc_wait ? M_WAITOK : M_NOWAIT)
293 if (ip == NULL)
295 ip->array = malloc(sizeof(uintptr_t) * NINDIR,
297 if (ip->array == NULL) {
298 free(ip, M_MD);
301 ip->total = NINDIR;
302 ip->shift = shift;
303 return (ip);
307 del_indir(struct indir *ip)
310 free(ip->array, M_MDSECT);
311 free(ip, M_MD);
315 destroy_indir(struct md_s *sc, struct indir *ip)
320 if (!ip->array[i])
322 if (ip->shift)
323 destroy_indir(sc, (struct indir*)(ip->array[i]));
324 else if (ip->array[i] > 255)
325 uma_zfree(sc->uma, (void *)(ip->array[i]));
327 del_indir(ip);
339 struct indir *ip;
351 * too much space for ip->array in here.
353 ip = malloc(sizeof *ip, M_MD, M_WAITOK | M_ZERO);
354 ip->array = malloc(sizeof(uintptr_t) * NINDIR,
356 ip->total = NINDIR;
357 ip->shift = layer * nshift;
358 return (ip);
366 s_read(struct indir *ip, off_t offset)
375 for (cip = ip; cip != NULL;) {
393 s_write(struct indir *ip, off_t offset, uintptr_t ptr)
403 cip = ip;
436 while (cip->used == 0 && cip != ip) {