Lines Matching refs:rdirp

475 rst_seekdir(RST_DIR *rdirp, long loc, long base)  in rst_seekdir()  argument
478 if (loc == rst_telldir(rdirp)) in rst_seekdir()
484 (void) lseek(rdirp->dd_fd, base + (loc & ~(DIRBLKSIZ - 1)), SEEK_SET); in rst_seekdir()
485 rdirp->dd_loc = loc & (DIRBLKSIZ - 1); in rst_seekdir()
486 if (rdirp->dd_loc != 0) in rst_seekdir()
487 rdirp->dd_size = read(rdirp->dd_fd, rdirp->dd_buf, DIRBLKSIZ); in rst_seekdir()
494 rst_readdir(RST_DIR *rdirp) in rst_readdir() argument
499 if (rdirp->dd_loc == 0) { in rst_readdir()
500 rdirp->dd_size = read(rdirp->dd_fd, rdirp->dd_buf, in rst_readdir()
502 if (rdirp->dd_size <= 0) { in rst_readdir()
507 if (rdirp->dd_loc >= rdirp->dd_size) { in rst_readdir()
508 rdirp->dd_loc = 0; in rst_readdir()
511 dp = (struct direct *)(rdirp->dd_buf + rdirp->dd_loc); in rst_readdir()
513 dp->d_reclen > DIRBLKSIZ + 1 - rdirp->dd_loc) { in rst_readdir()
518 rdirp->dd_loc += dp->d_reclen; in rst_readdir()
537 RST_DIR *rdirp; in rst_opendir() local
542 rdirp = opendirfile(dirfile); in rst_opendir()
543 rst_seekdir(rdirp, itp->t_seekpt, itp->t_seekpt); in rst_opendir()
544 return (rdirp); in rst_opendir()
553 rst_closedir(RST_DIR *rdirp) in rst_closedir() argument
556 (void)close(rdirp->dd_fd); in rst_closedir()
557 free(rdirp); in rst_closedir()
565 rst_telldir(RST_DIR *rdirp) in rst_telldir() argument
567 return ((long)lseek(rdirp->dd_fd, in rst_telldir()
568 (off_t)0, SEEK_CUR) - rdirp->dd_size + rdirp->dd_loc); in rst_telldir()
577 RST_DIR *rdirp; in opendirfile() local
582 if ((rdirp = malloc(sizeof(RST_DIR))) == NULL) { in opendirfile()
586 rdirp->dd_fd = fd; in opendirfile()
587 rdirp->dd_loc = 0; in opendirfile()
588 return (rdirp); in opendirfile()