Lines Matching refs:iod
59 static inline void io_dir__init(struct io_dir *iod, int dirfd) in io_dir__init() argument
61 iod->dirfd = dirfd; in io_dir__init()
62 iod->available_bytes = 0; in io_dir__init()
65 static inline void io_dir__rewinddir(struct io_dir *iod) in io_dir__rewinddir() argument
67 lseek(iod->dirfd, 0, SEEK_SET); in io_dir__rewinddir()
68 iod->available_bytes = 0; in io_dir__rewinddir()
71 static inline struct io_dirent64 *io_dir__readdir(struct io_dir *iod) in io_dir__readdir() argument
75 if (iod->available_bytes <= 0) { in io_dir__readdir()
76 ssize_t rc = perf_getdents64(iod->dirfd, iod->buff, sizeof(iod->buff)); in io_dir__readdir()
80 iod->available_bytes = rc; in io_dir__readdir()
81 iod->next = iod->buff; in io_dir__readdir()
83 entry = iod->next; in io_dir__readdir()
84 iod->next = (struct io_dirent64 *)((char *)entry + entry->d_reclen); in io_dir__readdir()
85 iod->available_bytes -= entry->d_reclen; in io_dir__readdir()
89 static inline bool io_dir__is_dir(const struct io_dir *iod, struct io_dirent64 *dent) in io_dir__is_dir() argument
94 if (fstatat(iod->dirfd, dent->d_name, &st, /*flags=*/0)) in io_dir__is_dir()