Lines Matching refs:fp

127 #define DIP(fp, field) \  argument
128 ((fp)->f_fs->fs_magic == FS_UFS1_MAGIC ? \
129 (fp)->f_di.di1.field : (fp)->f_di.di2.field)
145 struct file *fp = (struct file *)f->f_fsdata; local
146 struct fs *fs = fp->f_fs;
169 if (fp->f_fs->fs_magic == FS_UFS1_MAGIC)
170 fp->f_di.di1 = ((struct ufs1_dinode *)buf)
173 fp->f_di.di2 = ((struct ufs2_dinode *)buf)
183 fp->f_blkno[level] = -1;
184 fp->f_buf_blkno = -1;
186 fp->f_seekp = 0;
202 struct file *fp = (struct file *)f->f_fsdata; local
203 struct fs *fs = fp->f_fs;
234 *disk_block_p = DIP(fp, di_db[file_block]);
247 if (file_block < fp->f_nindir[level])
249 file_block -= fp->f_nindir[level];
256 ind_block_num = DIP(fp, di_ib[level]);
264 if (fp->f_blkno[level] != ind_block_num) {
265 if (fp->f_blk[level] == (char *)0)
266 fp->f_blk[level] =
270 fsbtodb(fp->f_fs, ind_block_num),
272 fp->f_blk[level],
273 &fp->f_blksize[level]);
276 if (fp->f_blksize[level] != fs->fs_bsize)
278 fp->f_blkno[level] = ind_block_num;
282 idx = file_block / fp->f_nindir[level - 1];
283 file_block %= fp->f_nindir[level - 1];
287 if (fp->f_fs->fs_magic == FS_UFS1_MAGIC)
288 ind_block_num = ((ufs1_daddr_t *)fp->f_blk[level])[idx];
290 ind_block_num = ((ufs2_daddr_t *)fp->f_blk[level])[idx];
307 struct file *fp = (struct file *)f->f_fsdata; local
308 struct fs *fs = fp->f_fs;
318 off = blkoff(fs, fp->f_seekp);
319 file_block = lblkno(fs, fp->f_seekp);
320 block_size = sblksize(fs, DIP(fp, di_size), file_block);
334 if (*size_p > DIP(fp, di_size) - fp->f_seekp)
335 *size_p = DIP(fp, di_size) - fp->f_seekp;
344 (file_block != fp->f_buf_blkno)) {
346 if (fp->f_buf == (char *)0)
347 fp->f_buf = malloc(fs->fs_bsize);
352 block_size, fp->f_buf, &fp->f_buf_size);
356 fp->f_buf_blkno = file_block;
362 bcopy(buf_p, fp->f_buf + off, *size_p);
371 block_size, fp->f_buf, &fp->f_buf_size);
385 struct file *fp = (struct file *)f->f_fsdata; local
386 struct fs *fs = fp->f_fs;
393 off = blkoff(fs, fp->f_seekp);
394 file_block = lblkno(fs, fp->f_seekp);
395 block_size = sblksize(fs, DIP(fp, di_size), file_block);
397 if (file_block != fp->f_buf_blkno) {
398 if (fp->f_buf == (char *)0)
399 fp->f_buf = malloc(fs->fs_bsize);
406 bzero(fp->f_buf, block_size);
407 fp->f_buf_size = block_size;
412 block_size, fp->f_buf, &fp->f_buf_size);
417 fp->f_buf_blkno = file_block;
425 *buf_p = fp->f_buf + off;
431 if (*size_p > DIP(fp, di_size) - fp->f_seekp)
432 *size_p = DIP(fp, di_size) - fp->f_seekp;
447 struct file *fp = (struct file *)f->f_fsdata; local
457 fp->f_seekp = 0;
458 while (fp->f_seekp < DIP(fp, di_size)) {
469 if (fp->f_fs->fs_maxsymlinklen <= 0)
483 fp->f_seekp += buf_size;
501 struct file *fp; local
511 fp = malloc(sizeof(struct file));
512 bzero(fp, sizeof(struct file));
513 f->f_fsdata = (void *)fp;
517 fp->f_fs = fs;
550 fp->f_nindir[level] = mult;
576 if ((DIP(fp, di_mode) & IFMT) != IFDIR) {
618 if ((DIP(fp, di_mode) & IFMT) == IFLNK) {
619 int link_len = DIP(fp, di_size);
633 if (fp->f_fs->fs_magic == FS_UFS1_MAGIC)
634 cp = (caddr_t)(fp->f_di.di1.di_db);
636 cp = (caddr_t)(fp->f_di.di2.di_db);
644 struct fs *fs = fp->f_fs;
681 fp->f_seekp = 0;
688 if (fp->f_buf)
689 free(fp->f_buf);
690 free(fp->f_fs);
691 free(fp);
700 struct file *fp = (struct file *)f->f_fsdata; local
704 if (fp == (struct file *)0)
708 if (fp->f_blk[level])
709 free(fp->f_blk[level]);
711 if (fp->f_buf)
712 free(fp->f_buf);
713 free(fp->f_fs);
714 free(fp);
729 struct file *fp = (struct file *)f->f_fsdata; local
737 if (fp->f_seekp >= DIP(fp, di_size))
750 fp->f_seekp += csize;
771 struct file *fp = (struct file *)f->f_fsdata; local
778 if (fp->f_seekp >= DIP(fp, di_size))
787 fp->f_seekp += csize;
802 struct file *fp = (struct file *)f->f_fsdata; local
806 fp->f_seekp = offset;
809 fp->f_seekp += offset;
812 fp->f_seekp = DIP(fp, di_size) - offset;
818 return (fp->f_seekp);
826 struct file *fp = (struct file *)f->f_fsdata; local
829 sb->st_mode = DIP(fp, di_mode);
830 sb->st_uid = DIP(fp, di_uid);
831 sb->st_gid = DIP(fp, di_gid);
832 sb->st_size = DIP(fp, di_size);
839 struct file *fp = (struct file *)f->f_fsdata; in ufs_readdir() local
849 if (fp->f_seekp >= DIP(fp, di_size)) in ufs_readdir()
855 fp->f_seekp += dp->d_reclen; in ufs_readdir()