summaryrefslogtreecommitdiff
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