Lines Matching refs:dirp
54 _dl_DIR *dirp; in _dl_opendir() local
60 if (_dl_fstat(fd, &sb) || (dirp = _dl_malloc(sizeof(*dirp))) == NULL) { in _dl_opendir()
65 dirp->dd_fd = fd; in _dl_opendir()
66 dirp->dd_loc = 0; in _dl_opendir()
67 dirp->dd_size = 0; in _dl_opendir()
68 dirp->dd_len = _dl_round_page(sb.st_blksize); in _dl_opendir()
69 dirp->dd_buf = _dl_malloc(dirp->dd_len); in _dl_opendir()
70 if (dirp->dd_buf == NULL) { in _dl_opendir()
71 _dl_free(dirp); in _dl_opendir()
76 return (dirp); in _dl_opendir()
84 _dl_closedir(_dl_DIR *dirp) in _dl_closedir() argument
88 ret = _dl_close(dirp->dd_fd); in _dl_closedir()
89 _dl_free(dirp->dd_buf); in _dl_closedir()
90 _dl_free(dirp); in _dl_closedir()
99 _dl_readdir(_dl_DIR *dirp) in _dl_readdir() argument
104 if (dirp->dd_loc >= dirp->dd_size) { in _dl_readdir()
105 dirp->dd_loc = 0; in _dl_readdir()
107 if (dirp->dd_loc == 0) { in _dl_readdir()
108 dirp->dd_size = _dl_getdents(dirp->dd_fd, in _dl_readdir()
109 dirp->dd_buf, dirp->dd_len); in _dl_readdir()
110 if (dirp->dd_size <= 0) in _dl_readdir()
113 dp = (struct dirent *)(dirp->dd_buf + dirp->dd_loc); in _dl_readdir()
117 dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) in _dl_readdir()
119 dirp->dd_loc += dp->d_reclen; in _dl_readdir()