Lines Matching defs:dirp
57 _readdir_unlocked(DIR *dirp, int skipdeleted)
63 if (dirp->dd_loc >= dirp->dd_size) {
64 if (dirp->dd_flags & __DTF_READALL)
66 dirp->dd_loc = 0;
68 if (dirp->dd_loc == 0 && !(dirp->dd_flags & __DTF_READALL)) {
69 dirp->dd_seek = lseek(dirp->dd_fd, (off_t)0, SEEK_CUR);
70 dirp->dd_size = getdents(dirp->dd_fd,
71 dirp->dd_buf, (size_t)dirp->dd_len);
72 if (dirp->dd_size == 0) /* end of directory */
74 if (dirp->dd_size == -1) /* getdents sets errno */
76 if (dirp->dd_size < 0) { /* paranoia */
82 (void *)(dirp->dd_buf + (size_t)dirp->dd_loc);
89 if (dp->d_reclen > dirp->dd_len + 1 - dirp->dd_loc) {
93 dirp->dd_loc += dp->d_reclen;
96 if (dp->d_type == DT_WHT && (dirp->dd_flags & DTF_HIDEW))
106 readdir(DIR *dirp)
112 mutex_lock((mutex_t *)dirp->dd_lock);
113 dp = _readdir_unlocked(dirp, 1);
114 mutex_unlock((mutex_t *)dirp->dd_lock);
118 dp = _readdir_unlocked(dirp, 1);
123 readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result)
132 mutex_lock((mutex_t *)dirp->dd_lock);
133 if ((dp = _readdir_unlocked(dirp, 1)) != NULL)
135 mutex_unlock((mutex_t *)dirp->dd_lock);
139 if ((dp = _readdir_unlocked(dirp, 1)) != NULL)