Lines Matching defs:filep

47 #include <sys/filep.h>
94 fileid_t *filep;
147 fileid_t *filep = head;
150 while ((filep = filep->fi_forw) != head)
151 if (fd == filep->fi_filedes)
152 return (filep->fi_taken ? filep : 0);
159 opendir(ino_t inode, fileid_t *filep)
165 filep->fi_offset = 0;
166 filep->fi_blocknum = hdbtodb(inode);
167 filep->fi_count = ISO_SECTOR_SIZE;
168 filep->fi_memp = 0;
170 if (diskread(filep))
173 filep->fi_offset = 0;
174 filep->fi_blocknum = hdbtodb(inode);
179 if (parse_dir(filep, 0, &hsdep) > 0) {
182 ip = filep->fi_inode;
184 ip = filep->fi_inode = bkmem_alloc(sizeof (*ip));
195 find(char *path, fileid_t *filep)
205 if (opendir(root_ino, filep))
216 n = dlook(path, filep);
223 if (opendir(n, filep))
234 dlook(char *s, fileid_t *filep)
243 ip = filep->fi_inode;
254 dirp.filep = filep;
267 struct inode *ip = filep->fi_inode;
269 filep->fi_offset = 0;
270 filep->fi_blocknum = hdbtodb(udp->d_ino);
272 bzero(filep->fi_inode, sizeof (struct inode));
291 fileid_t *filep;
296 filep = dirp->filep;
297 ip = filep->fi_inode;
305 filep->fi_blocknum = lbn + hdbtodb(ip->i_number);
306 filep->fi_count = ISO_SECTOR_SIZE;
307 filep->fi_memp = 0;
308 if (diskread(filep)) {
313 dirp->loc += parse_dir(filep, off, &hsdep);
323 getblock(fileid_t *filep)
325 struct inode *ip = filep->fi_inode;
330 diff = ip->i_size - filep->fi_offset;
335 lbn = hdbtodb(filep->fi_offset >> ISO_SECTOR_SHIFT);
336 filep->fi_blocknum = lbn + hdbtodb(ip->i_number);
338 off = filep->fi_offset & ((1 << ISO_SECTOR_SHIFT) - 1);
339 size = filep->fi_count = ISO_SECTOR_SIZE;
340 filep->fi_memp = 0;
341 if (diskread(filep)) /* Trap errors */
344 if (filep->fi_offset - off + size >= ip->i_size)
345 filep->fi_count = diff + off;
346 filep->fi_count -= off;
347 filep->fi_memp += off;
356 fileid_t *filep;
362 filep = find_fp(fd);
363 if (filep == NULL)
366 ip = filep->fi_inode;
368 if ((filep->fi_flags & FI_COMPRESSED) == 0 &&
369 filep->fi_offset + count > ip->i_size)
370 count = ip->i_size - filep->fi_offset;
376 if (filep->fi_flags & FI_COMPRESSED) {
377 if ((j = cf_read(filep, buf, count)) < 0)
382 if (filep->fi_count == 0) {
383 if (getblock(filep) == -1)
386 j = MIN(i, filep->fi_count);
387 bcopy(filep->fi_memp, buf, (uint_t)j);
389 filep->fi_memp += j;
390 filep->fi_offset += j;
391 filep->fi_count -= j;
478 fileid_t *filep;
482 filep = (fileid_t *)bkmem_alloc(sizeof (fileid_t));
483 filep->fi_back = head->fi_back;
484 filep->fi_forw = head;
485 head->fi_back->fi_forw = filep;
486 head->fi_back = filep;
487 filep->fi_filedes = filedes++;
488 filep->fi_taken = 1;
489 filep->fi_path = (char *)bkmem_alloc(strlen(str) + 1);
490 (void) strcpy(filep->fi_path, str);
491 filep->fi_inode = NULL;
492 bzero(filep->fi_buf, MAXBSIZE);
493 filep->fi_getblock = getblock;
494 filep->fi_flags = 0;
496 ino = find(str, filep);
498 (void) bhsfs_close(filep->fi_filedes);
502 filep->fi_blocknum = hdbtodb(ino);
503 filep->fi_offset = 0;
504 filep->fi_count = 0;
505 filep->fi_memp = 0;
507 if (cf_check_compressed(filep) != 0)
510 return (filep->fi_filedes);
516 fileid_t *filep;
519 if (!(filep = find_fp(fd)))
522 if (filep->fi_taken == 0 || filep == head) {
527 cf_close(filep);
529 filep->fi_forw->fi_back = filep->fi_back;
530 filep->fi_back->fi_forw = filep->fi_forw;
531 if (filep->fi_inode)
532 bkmem_free(filep->fi_inode, sizeof (struct inode));
533 bkmem_free(filep->fi_path, strlen(filep->fi_path) + 1);
534 bkmem_free((char *)filep, sizeof (fileid_t));
542 fileid_t *filep;
544 while ((filep = head->fi_forw) != head)
545 if (filep->fi_taken && bhsfs_close(filep->fi_filedes))
560 fileid_t *filep;
564 if (!(filep = find_fp(fd)))
567 if (filep->fi_flags & FI_COMPRESSED) {
568 cf_seek(filep, addr, whence);
572 filep->fi_offset += addr;
575 filep->fi_offset = addr;
582 filep->fi_blocknum = addr / DEV_BSIZE;
585 filep->fi_count = 0;
592 fileid_t *filep;
595 if (!(filep = find_fp(fd)))
598 ip = filep->fi_inode;
641 parse_dir(fileid_t *filep, int offset, struct hs_direct *hsdep)
643 char *bufp = (char *)(filep->fi_memp + offset);
730 daddr_t save_bn = filep->fi_blocknum;
731 daddr_t save_offset = filep->fi_offset;
732 caddr_t save_ma = filep->fi_memp;
733 int save_cc = filep->fi_count;
735 filep->fi_count = ISO_SECTOR_SIZE;
736 filep->fi_offset = 0;
737 filep->fi_blocknum = hdbtodb(ce_lbn);
738 filep->fi_memp = 0;
739 if (diskread(filep)) {
745 ce_lbn = parse_susp(filep->fi_memp, &ce_len,
748 filep->fi_count = save_cc;
749 filep->fi_offset = save_offset;
750 filep->fi_blocknum = save_bn;
751 filep->fi_memp = save_ma;