about summary refs log tree commit diff
path: root/include/dirent.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dirent.h')
-rw-r--r--include/dirent.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/include/dirent.h b/include/dirent.h
index 650ecf64..7fa60e06 100644
--- a/include/dirent.h
+++ b/include/dirent.h
@@ -9,14 +9,23 @@ extern "C" {
 
 #define __NEED_ino_t
 #define __NEED_off_t
-#if defined(_BSD_SOURCE) || defined(_GNU_SOURCE)
 #define __NEED_size_t
-#endif
+#define __NEED_ssize_t
 
 #include <bits/alltypes.h>
 
 #include <bits/dirent.h>
 
+typedef unsigned short reclen_t;
+
+struct posix_dent {
+	ino_t d_ino;
+	off_t d_off;
+	reclen_t d_reclen;
+	unsigned char d_type;
+	char d_name[];
+};
+
 typedef struct __dirstream DIR;
 
 #define d_fileno d_ino
@@ -29,6 +38,8 @@ int            readdir_r(DIR *__restrict, struct dirent *__restrict, struct dire
 void           rewinddir(DIR *);
 int            dirfd(DIR *);
 
+ssize_t posix_getdents(int, void *, size_t, int);
+
 int alphasort(const struct dirent **, const struct dirent **);
 int scandir(const char *, struct dirent ***, int (*)(const struct dirent *), int (*)(const struct dirent **, const struct dirent **));
 
@@ -37,7 +48,6 @@ void           seekdir(DIR *, long);
 long           telldir(DIR *);
 #endif
 
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 #define DT_UNKNOWN 0
 #define DT_FIFO 1
 #define DT_CHR 2
@@ -47,6 +57,8 @@ long           telldir(DIR *);
 #define DT_LNK 10
 #define DT_SOCK 12
 #define DT_WHT 14
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 #define IFTODT(x) ((x)>>12 & 017)
 #define DTTOIF(x) ((x)<<12)
 int getdents(int, struct dirent *, size_t);
@@ -56,7 +68,7 @@ int getdents(int, struct dirent *, size_t);
 int versionsort(const struct dirent **, const struct dirent **);
 #endif
 
-#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
+#if defined(_LARGEFILE64_SOURCE)
 #define dirent64 dirent
 #define readdir64 readdir
 #define readdir64_r readdir_r