Implement scandirat function
[platform/upstream/glibc.git] / include / dirent.h
1 #ifndef _DIRENT_H
2 # include <dirstream.h>
3 # include <dirent/dirent.h>
4 # include <sys/stat.h>
5 # include <stdbool.h>
6
7 struct scandir_cancel_struct
8 {
9   DIR *dp;
10   void *v;
11   size_t cnt;
12 };
13
14 /* Now define the internal interfaces.  */
15 extern DIR *__opendir (__const char *__name);
16 extern DIR *__opendirat (int dfd, __const char *__name) internal_function;
17 extern DIR *__fdopendir (int __fd);
18 extern int __closedir (DIR *__dirp);
19 extern struct dirent *__readdir (DIR *__dirp);
20 extern struct dirent64 *__readdir64 (DIR *__dirp);
21 extern int __readdir_r (DIR *__dirp, struct dirent *__entry,
22                         struct dirent **__result);
23 extern int __readdir64_r (DIR *__dirp, struct dirent64 *__entry,
24                           struct dirent64 **__result);
25 extern int __scandir64 (__const char * __dir,
26                         struct dirent64 *** __namelist,
27                         int (*__selector) (__const struct dirent64 *),
28                         int (*__cmp) (__const struct dirent64 **,
29                                       __const struct dirent64 **));
30 extern int __scandirat64 (int __dfd, __const char * __dir,
31                           struct dirent64 *** __namelist,
32                           int (*__selector) (__const struct dirent64 *),
33                           int (*__cmp) (__const struct dirent64 **,
34                                         __const struct dirent64 **));
35 extern __ssize_t __getdents (int __fd, char *__buf, size_t __nbytes)
36      internal_function;
37 extern __ssize_t __getdents64 (int __fd, char *__buf, size_t __nbytes)
38      internal_function;
39 extern int __alphasort64 (const struct dirent64 **a, const struct dirent64 **b)
40      __attribute_pure__;
41 extern int __versionsort64 (const struct dirent64 **a,
42                             const struct dirent64 **b)
43      __attribute_pure__;
44 extern DIR *__alloc_dir (int fd, bool close_fd, int flags,
45                          const struct stat64 *statp)
46      internal_function;
47 extern void __scandir_cancel_handler (void *arg);
48
49 libc_hidden_proto (rewinddir)
50
51 #endif