Lines Matching refs:filep

92 	fileid_t *filep;  member
145 fileid_t *filep = head; in find_fp() local
148 while ((filep = filep->fi_forw) != head) in find_fp()
149 if (fd == filep->fi_filedes) in find_fp()
150 return (filep->fi_taken ? filep : 0); in find_fp()
157 opendir(ino_t inode, fileid_t *filep) in opendir() argument
163 filep->fi_offset = 0; in opendir()
164 filep->fi_blocknum = hdbtodb(inode); in opendir()
165 filep->fi_count = ISO_SECTOR_SIZE; in opendir()
166 filep->fi_memp = 0; in opendir()
168 if (diskread(filep)) in opendir()
171 filep->fi_offset = 0; in opendir()
172 filep->fi_blocknum = hdbtodb(inode); in opendir()
177 if (parse_dir(filep, 0, &hsdep) > 0) { in opendir()
180 ip = filep->fi_inode; in opendir()
182 ip = filep->fi_inode = bkmem_alloc(sizeof (*ip)); in opendir()
193 find(char *path, fileid_t *filep) in find() argument
204 if (opendir(root_ino, filep)) in find()
215 n = dlook(path, filep); in find()
222 if (opendir(n, filep)) in find()
233 dlook(char *s, fileid_t *filep) in dlook() argument
242 ip = filep->fi_inode; in dlook()
253 dirp.filep = filep; in dlook()
266 struct inode *ip = filep->fi_inode; in dlook()
268 filep->fi_offset = 0; in dlook()
269 filep->fi_blocknum = hdbtodb(udp->d_ino); in dlook()
271 bzero(filep->fi_inode, sizeof (struct inode)); in dlook()
290 fileid_t *filep; in readdir() local
295 filep = dirp->filep; in readdir()
296 ip = filep->fi_inode; in readdir()
304 filep->fi_blocknum = lbn + hdbtodb(ip->i_number); in readdir()
305 filep->fi_count = ISO_SECTOR_SIZE; in readdir()
306 filep->fi_memp = 0; in readdir()
307 if (diskread(filep)) { in readdir()
312 dirp->loc += parse_dir(filep, off, &hsdep); in readdir()
322 getblock(fileid_t *filep) in getblock() argument
324 struct inode *ip = filep->fi_inode; in getblock()
329 diff = ip->i_size - filep->fi_offset; in getblock()
334 lbn = hdbtodb(filep->fi_offset >> ISO_SECTOR_SHIFT); in getblock()
335 filep->fi_blocknum = lbn + hdbtodb(ip->i_number); in getblock()
337 off = filep->fi_offset & ((1 << ISO_SECTOR_SHIFT) - 1); in getblock()
338 size = filep->fi_count = ISO_SECTOR_SIZE; in getblock()
339 filep->fi_memp = 0; in getblock()
340 if (diskread(filep)) /* Trap errors */ in getblock()
343 if (filep->fi_offset - off + size >= ip->i_size) in getblock()
344 filep->fi_count = diff + off; in getblock()
345 filep->fi_count -= off; in getblock()
346 filep->fi_memp += off; in getblock()
355 fileid_t *filep; in bhsfs_read() local
361 filep = find_fp(fd); in bhsfs_read()
362 if (filep == NULL) in bhsfs_read()
365 ip = filep->fi_inode; in bhsfs_read()
367 if ((filep->fi_flags & FI_COMPRESSED) == 0 && in bhsfs_read()
368 filep->fi_offset + count > ip->i_size) in bhsfs_read()
369 count = ip->i_size - filep->fi_offset; in bhsfs_read()
375 if (filep->fi_flags & FI_COMPRESSED) { in bhsfs_read()
376 if ((j = cf_read(filep, buf, count)) < 0) in bhsfs_read()
381 if (filep->fi_count == 0) { in bhsfs_read()
382 if (getblock(filep) == -1) in bhsfs_read()
385 j = MIN(i, filep->fi_count); in bhsfs_read()
386 bcopy(filep->fi_memp, buf, (uint_t)j); in bhsfs_read()
388 filep->fi_memp += j; in bhsfs_read()
389 filep->fi_offset += j; in bhsfs_read()
390 filep->fi_count -= j; in bhsfs_read()
477 fileid_t *filep; in bhsfs_open() local
481 filep = (fileid_t *)bkmem_alloc(sizeof (fileid_t)); in bhsfs_open()
482 filep->fi_back = head->fi_back; in bhsfs_open()
483 filep->fi_forw = head; in bhsfs_open()
484 head->fi_back->fi_forw = filep; in bhsfs_open()
485 head->fi_back = filep; in bhsfs_open()
486 filep->fi_filedes = filedes++; in bhsfs_open()
487 filep->fi_taken = 1; in bhsfs_open()
488 filep->fi_path = (char *)bkmem_alloc(strlen(str) + 1); in bhsfs_open()
489 (void) strcpy(filep->fi_path, str); in bhsfs_open()
490 filep->fi_inode = NULL; in bhsfs_open()
491 bzero(filep->fi_buf, MAXBSIZE); in bhsfs_open()
492 filep->fi_getblock = getblock; in bhsfs_open()
493 filep->fi_flags = 0; in bhsfs_open()
495 ino = find(str, filep); in bhsfs_open()
497 (void) bhsfs_close(filep->fi_filedes); in bhsfs_open()
501 filep->fi_blocknum = hdbtodb(ino); in bhsfs_open()
502 filep->fi_offset = 0; in bhsfs_open()
503 filep->fi_count = 0; in bhsfs_open()
504 filep->fi_memp = 0; in bhsfs_open()
506 if (cf_check_compressed(filep) != 0) in bhsfs_open()
509 return (filep->fi_filedes); in bhsfs_open()
515 fileid_t *filep; in bhsfs_close() local
518 if (!(filep = find_fp(fd))) in bhsfs_close()
521 if (filep->fi_taken == 0 || filep == head) { in bhsfs_close()
526 cf_close(filep); in bhsfs_close()
528 filep->fi_forw->fi_back = filep->fi_back; in bhsfs_close()
529 filep->fi_back->fi_forw = filep->fi_forw; in bhsfs_close()
530 if (filep->fi_inode) in bhsfs_close()
531 bkmem_free(filep->fi_inode, sizeof (struct inode)); in bhsfs_close()
532 bkmem_free(filep->fi_path, strlen(filep->fi_path) + 1); in bhsfs_close()
533 bkmem_free((char *)filep, sizeof (fileid_t)); in bhsfs_close()
541 fileid_t *filep; in bhsfs_closeall() local
543 while ((filep = head->fi_forw) != head) in bhsfs_closeall()
544 if (filep->fi_taken && bhsfs_close(filep->fi_filedes)) in bhsfs_closeall()
559 fileid_t *filep; in bhsfs_lseek() local
563 if (!(filep = find_fp(fd))) in bhsfs_lseek()
566 if (filep->fi_flags & FI_COMPRESSED) { in bhsfs_lseek()
567 cf_seek(filep, addr, whence); in bhsfs_lseek()
571 filep->fi_offset += addr; in bhsfs_lseek()
574 filep->fi_offset = addr; in bhsfs_lseek()
581 filep->fi_blocknum = addr / DEV_BSIZE; in bhsfs_lseek()
584 filep->fi_count = 0; in bhsfs_lseek()
591 fileid_t *filep; in bhsfs_fstat() local
594 if (!(filep = find_fp(fd))) in bhsfs_fstat()
597 ip = filep->fi_inode; in bhsfs_fstat()
640 parse_dir(fileid_t *filep, int offset, struct hs_direct *hsdep) in parse_dir() argument
642 char *bufp = (char *)(filep->fi_memp + offset); in parse_dir()
729 daddr_t save_bn = filep->fi_blocknum; in parse_dir()
730 daddr_t save_offset = filep->fi_offset; in parse_dir()
731 caddr_t save_ma = filep->fi_memp; in parse_dir()
732 int save_cc = filep->fi_count; in parse_dir()
734 filep->fi_count = ISO_SECTOR_SIZE; in parse_dir()
735 filep->fi_offset = 0; in parse_dir()
736 filep->fi_blocknum = hdbtodb(ce_lbn); in parse_dir()
737 filep->fi_memp = 0; in parse_dir()
738 if (diskread(filep)) { in parse_dir()
744 ce_lbn = parse_susp(filep->fi_memp, &ce_len, in parse_dir()
747 filep->fi_count = save_cc; in parse_dir()
748 filep->fi_offset = save_offset; in parse_dir()
749 filep->fi_blocknum = save_bn; in parse_dir()
750 filep->fi_memp = save_ma; in parse_dir()