Lines Matching refs:filep

124 opendir(fileid_t *filep, ino_t inode)  in opendir()  argument
130 filep->fi_offset = 0; in opendir()
131 filep->fi_blocknum = hdbtodb(inode); in opendir()
132 filep->fi_count = ISO_SECTOR_SIZE; in opendir()
135 if ((filep->fi_memp = get_bcache(filep)) == NULL) { in opendir()
137 if (retval = set_bcache(filep)) { in opendir()
142 filep->fi_offset = 0; in opendir()
143 filep->fi_blocknum = hdbtodb(inode); in opendir()
148 if ((int)(parse_dir(filep, 0, &hsdep)) > 0) { in opendir()
149 hs_seti(filep, &hsdep, inode); in opendir()
156 find(fileid_t *filep, char *path) in find() argument
171 if (opendir(filep, inode = root_ino)) { in find()
186 if ((inode = dlook(filep, path)) != 0) { in find()
189 if (opendir(filep, inode)) { in find()
208 fileid_t *filep = head; in find_fp() local
211 while ((filep = filep->fi_forw) != head) in find_fp()
212 if (fd == filep->fi_filedes) in find_fp()
213 return (filep->fi_taken ? filep : 0); in find_fp()
220 dlook(fileid_t *filep, char *path) in dlook() argument
222 int dv = filep->fi_devp->di_dcookie; in dlook()
230 ip = filep->fi_inode; in dlook()
242 if ((filep->fi_inode = get_icache(dv, in)) != NULL) { in dlook()
243 filep->fi_offset = 0; in dlook()
244 filep->fi_blocknum = hdbtodb(in); in dlook()
249 dirp.fi = filep; in dlook()
263 hs_seti(filep, hsdep, udp->d_ino); in dlook()
264 filep->fi_offset = 0; in dlook()
265 filep->fi_blocknum = hdbtodb(udp->d_ino); in dlook()
285 register fileid_t *filep; in readdir() local
289 filep = dirp->fi; in readdir()
290 ip = filep->fi_inode; in readdir()
298 filep->fi_blocknum = lbn + hdbtodb(ip->i_number); in readdir()
299 filep->fi_count = ISO_SECTOR_SIZE; in readdir()
301 if ((filep->fi_memp = get_bcache(filep)) == 0) in readdir()
302 if (set_bcache(filep)) in readdir()
305 dirp->loc += parse_dir(filep, off, &hsdep); in readdir()
319 getblock(fileid_t *filep, caddr_t buf, int count, int *rcount) in getblock() argument
329 ip = filep->fi_inode; in getblock()
330 p = filep->fi_memp; in getblock()
331 if ((signed)filep->fi_count <= 0) { in getblock()
334 diff = ip->i_size - filep->fi_offset; in getblock()
341 lbn = hdbtodb(filep->fi_offset >> ISO_SECTOR_SHIFT); in getblock()
344 filep->fi_blocknum = lbn + hdbtodb(ip->i_number); in getblock()
346 off = filep->fi_offset & ((1 << ISO_SECTOR_SHIFT) - 1); in getblock()
348 size = sizeof (filep->fi_buf); in getblock()
352 filep->fi_count = size; in getblock()
353 filep->fi_memp = filep->fi_buf; in getblock()
361 filep->fi_memp = buf; in getblock()
362 if (diskread(filep)) { in getblock()
366 filep->fi_count = 0; in getblock()
372 if (diskread(filep)) in getblock()
382 if (filep->fi_offset - off + size >= ip->i_size) in getblock()
383 filep->fi_count = diff + off; in getblock()
384 filep->fi_count -= off; in getblock()
385 p = &filep->fi_memp[off]; in getblock()
387 filep->fi_memp = p; in getblock()
407 fileid_t *filep; in boot_hsfs_read() local
410 if (!(filep = find_fp(fd))) { in boot_hsfs_read()
414 ip = filep->fi_inode; in boot_hsfs_read()
416 if (filep->fi_offset + count > ip->i_size) in boot_hsfs_read()
417 count = ip->i_size - filep->fi_offset; in boot_hsfs_read()
426 if ((j = filep->fi_count) == 0) { in boot_hsfs_read()
427 (void) getblock(filep, buf, i, &rcount); in boot_hsfs_read()
430 filep->fi_offset += rcount; in boot_hsfs_read()
434 bcopy(filep->fi_memp, buf, (unsigned)j); in boot_hsfs_read()
436 filep->fi_memp += j; in boot_hsfs_read()
437 filep->fi_offset += j; in boot_hsfs_read()
438 filep->fi_count -= j; in boot_hsfs_read()
573 fileid_t *filep; in boot_hsfs_open() local
578 filep = (fileid_t *)bkmem_alloc(sizeof (fileid_t)); in boot_hsfs_open()
579 filep->fi_back = head->fi_back; in boot_hsfs_open()
580 filep->fi_forw = head; in boot_hsfs_open()
581 head->fi_back->fi_forw = filep; in boot_hsfs_open()
582 head->fi_back = filep; in boot_hsfs_open()
584 filep->fi_filedes = filedes++; in boot_hsfs_open()
585 filep->fi_taken = 1; in boot_hsfs_open()
586 filep->fi_path = (char *)bkmem_alloc(strlen(filename) + 1); in boot_hsfs_open()
587 (void) strcpy(filep->fi_path, filename); in boot_hsfs_open()
588 filep->fi_devp = devp; /* dev is already "mounted" */ in boot_hsfs_open()
590 filep->fi_inode = 0; in boot_hsfs_open()
592 inode = find(filep, filename); in boot_hsfs_open()
596 (void) boot_hsfs_close(filep->fi_filedes); in boot_hsfs_open()
600 filep->fi_blocknum = hdbtodb(inode); in boot_hsfs_open()
601 filep->fi_offset = filep->fi_count = 0; in boot_hsfs_open()
604 printf("open(%s) fd=%d\n", filename, filep->fi_filedes); in boot_hsfs_open()
605 return (filep->fi_filedes); in boot_hsfs_open()
615 fileid_t *filep; in boot_hsfs_fstat() local
618 if (!(filep = find_fp(fd))) in boot_hsfs_fstat()
621 ip = filep->fi_inode; in boot_hsfs_fstat()
661 fileid_t *filep; in boot_hsfs_lseek() local
663 if (!(filep = find_fp(fd))) in boot_hsfs_lseek()
666 filep->fi_offset = addr; in boot_hsfs_lseek()
667 filep->fi_blocknum = addr / DEV_BSIZE; in boot_hsfs_lseek()
668 filep->fi_count = 0; in boot_hsfs_lseek()
676 fileid_t *filep; in boot_hsfs_close() local
681 if (filep = find_fp(fd)) { in boot_hsfs_close()
683 bkmem_free(filep->fi_path, strlen(filep->fi_path)+1); in boot_hsfs_close()
684 filep->fi_blocknum = filep->fi_count = filep->fi_offset = 0; in boot_hsfs_close()
685 filep->fi_memp = (caddr_t)0; in boot_hsfs_close()
686 filep->fi_devp = 0; in boot_hsfs_close()
687 filep->fi_taken = 0; in boot_hsfs_close()
690 filep->fi_forw->fi_back = filep->fi_back; in boot_hsfs_close()
691 filep->fi_back->fi_forw = filep->fi_forw; in boot_hsfs_close()
692 bkmem_free((char *)filep, sizeof (fileid_t)); in boot_hsfs_close()
707 fileid_t *filep = head; in boot_hsfs_closeall() local
716 while ((filep = filep->fi_forw) != head) in boot_hsfs_closeall()
717 if (filep->fi_taken) in boot_hsfs_closeall()
718 if (boot_hsfs_close(filep->fi_filedes)) in boot_hsfs_closeall()
735 parse_dir(fileid_t *filep, int offset, struct hs_direct *hsdep) in parse_dir() argument
737 char *bufp = (char *)(filep->fi_memp + offset); in parse_dir()
809 daddr_t save_blocknum = filep->fi_blocknum; in parse_dir()
810 daddr_t save_offset = filep->fi_offset; in parse_dir()
811 caddr_t save_memp = filep->fi_memp; in parse_dir()
812 uint_t save_count = filep->fi_count; in parse_dir()
815 print_io_req(filep, "parse_dir(): [I]"); in parse_dir()
818 filep->fi_blocknum = hdbtodb(ce_lbn); in parse_dir()
819 filep->fi_offset = 0; in parse_dir()
820 filep->fi_count = ISO_SECTOR_SIZE; in parse_dir()
823 print_io_req(filep, "parse_dir(): [0]"); in parse_dir()
826 if ((filep->fi_memp = get_bcache(filep)) == 0) in parse_dir()
827 ret_code = set_bcache(filep); in parse_dir()
830 print_io_req(filep, "parse_dir(): [1]"); in parse_dir()
834 filep->fi_blocknum = save_blocknum; in parse_dir()
835 filep->fi_offset = save_offset; in parse_dir()
836 filep->fi_memp = save_memp; in parse_dir()
837 filep->fi_count = save_count; in parse_dir()
842 ce_lbn = parse_susp(filep->fi_memp, &ce_len, hsdep); in parse_dir()
844 filep->fi_blocknum = save_blocknum; in parse_dir()
845 filep->fi_offset = save_offset; in parse_dir()
846 filep->fi_memp = save_memp; in parse_dir()
847 filep->fi_count = save_count; in parse_dir()
850 print_io_req(filep, "parse_dir(): [2]"); in parse_dir()
953 hs_seti(fileid_t *filep, struct hs_direct *hsdep, ino_t inode) in hs_seti() argument
956 int dv = filep->fi_devp->di_dcookie; in hs_seti()
959 if ((filep->fi_inode = get_icache(dv, inode)) != NULL) in hs_seti()
962 filep->fi_inode = (struct inode *)bkmem_alloc(sizeof (struct inode)); in hs_seti()
963 ip = filep->fi_inode; in hs_seti()
979 print_io_req(fileid_t *filep, char *str) in print_io_req() argument
983 filep->fi_offset, in print_io_req()
984 filep->fi_blocknum, in print_io_req()
985 filep->fi_count, in print_io_req()
986 (uint_t)filep->fi_memp); in print_io_req()