about summary refs log tree commit diff
path: root/dirent
diff options
context:
space:
mode:
Diffstat (limited to 'dirent')
-rw-r--r--dirent/Makefile2
-rw-r--r--dirent/dirent.h30
2 files changed, 27 insertions, 5 deletions
diff --git a/dirent/Makefile b/dirent/Makefile
index a7f3553df0..7c36510ca1 100644
--- a/dirent/Makefile
+++ b/dirent/Makefile
@@ -24,7 +24,7 @@ subdir		:= dirent
 headers		:= dirent.h bits/dirent.h
 routines	:= opendir closedir readdir readdir_r rewinddir \
 		   seekdir telldir scandir alphasort versionsort \
-		   getdents dirfd
+		   getdents dirfd readdir64 readdir64_r
 distribute := dirstream.h
 
 tests	   := list tst-seekdir
diff --git a/dirent/dirent.h b/dirent/dirent.h
index a9b7a7474d..e2fab0ab03 100644
--- a/dirent/dirent.h
+++ b/dirent/dirent.h
@@ -112,20 +112,42 @@ extern DIR *opendir __P ((__const char *__name));
 extern int __closedir __P ((DIR *__dirp));
 extern int closedir __P ((DIR *__dirp));
 
-/* Read a directory entry from DIRP.
-   Return a pointer to a `struct dirent' describing the entry,
-   or NULL for EOF or error.  The storage returned may be overwritten
-   by a later readdir call on the same DIR stream.  */
+/* Read a directory entry from DIRP.  Return a pointer to a `struct
+   dirent' describing the entry, or NULL for EOF or error.  The
+   storage returned may be overwritten by a later readdir call on the
+   same DIR stream.
+
+   If the Large File Support API is selected we have to use the
+   appropriate interface.  */
 extern struct dirent *__readdir __P ((DIR *__dirp));
+#ifndef __USE_FILE_OFFSET64
 extern struct dirent *readdir __P ((DIR *__dirp));
+#else
+extern struct dirent64 *readdir __P ((DIR *__dirp)) __asm__ ("readdir64");
+#endif
+
+#ifdef __USE_LARGEFILE64
+extern struct dirent64 *readdir64 __P ((DIR *__dirp));
+#endif
 
 #if defined __USE_POSIX || defined __USE_MISC
 /* Reentrant version of `readdir'.  Return in RESULT a pointer to the
    next entry.  */
 extern int __readdir_r __P ((DIR *__dirp, struct dirent *__entry,
 			     struct dirent **__result));
+# ifndef __USE_FILE_OFFSET64
 extern int readdir_r __P ((DIR *__dirp, struct dirent *__entry,
 			   struct dirent **__result));
+# else
+extern int readdir_r __P ((DIR *__dirp, struct dirent64 *__entry,
+			   struct dirent64 **__result))
+     __asm__ ("readdir64_r");
+# endif
+
+# ifdef __USE_LARGEFILE64
+extern int readdir64_r __P ((DIR *__dirp, struct dirent64 *__entry,
+			     struct dirent64 **__result));
+# endif
 #endif	/* POSIX or misc */
 
 /* Rewind DIRP to the beginning of the directory.  */