about summary refs log tree commit diff
path: root/include/dirent.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2015-05-13 12:34:11 -0700
committerRoland McGrath <roland@hack.frob.com>2015-05-13 12:34:11 -0700
commitd2ee815ad677bba720c4f0275c1d6065f5809e7a (patch)
treebdf787aecee9e951a71ce1d852e26b4412743803 /include/dirent.h
parent83c10893259916152d277327fa37d8f70bb4d4c2 (diff)
downloadglibc-d2ee815ad677bba720c4f0275c1d6065f5809e7a.tar.gz
glibc-d2ee815ad677bba720c4f0275c1d6065f5809e7a.tar.xz
glibc-d2ee815ad677bba720c4f0275c1d6065f5809e7a.zip
Refactor scandir/scandirat to use common tail.
Diffstat (limited to 'include/dirent.h')
-rw-r--r--include/dirent.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/include/dirent.h b/include/dirent.h
index c50bd23783..258f2d0791 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -49,6 +49,26 @@ extern DIR *__alloc_dir (int fd, bool close_fd, int flags,
 extern __typeof (rewinddir) __rewinddir;
 
 extern void __scandir_cancel_handler (void *arg) attribute_hidden;
+extern int __scandir_tail (DIR *dp,
+			   struct dirent ***namelist,
+			   int (*select) (const struct dirent *),
+			   int (*cmp) (const struct dirent **,
+				       const struct dirent **))
+  internal_function attribute_hidden;
+#  ifdef _DIRENT_MATCHES_DIRENT64
+#   define __scandir64_tail (dp, namelist, select, cmp)         \
+  __scandir_tail (dp, (struct dirent ***) (namelist),           \
+		  (int (*) (const struct dirent *)) (select),   \
+		  (int (*) (const struct dirent **,             \
+			    const struct dirent **)) (cmp))
+#  else
+extern int __scandir64_tail (DIR *dp,
+			     struct dirent64 ***namelist,
+			     int (*select) (const struct dirent64 *),
+			     int (*cmp) (const struct dirent64 **,
+					 const struct dirent64 **))
+  internal_function attribute_hidden;
+#  endif
 
 libc_hidden_proto (__rewinddir)
 extern __typeof (scandirat) __scandirat;