diff options
Diffstat (limited to 'include/dirent.h')
-rw-r--r-- | include/dirent.h | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/include/dirent.h b/include/dirent.h index e0a8fe6a..7fa60e06 100644 --- a/include/dirent.h +++ b/include/dirent.h @@ -9,26 +9,25 @@ 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> -typedef struct __dirstream DIR; +#include <bits/dirent.h> -#define _DIRENT_HAVE_D_RECLEN -#define _DIRENT_HAVE_D_OFF -#define _DIRENT_HAVE_D_TYPE +typedef unsigned short reclen_t; -struct dirent { +struct posix_dent { ino_t d_ino; off_t d_off; - unsigned short d_reclen; + reclen_t d_reclen; unsigned char d_type; - char d_name[256]; + char d_name[]; }; +typedef struct __dirstream DIR; + #define d_fileno d_ino int closedir(DIR *); @@ -39,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 **)); @@ -47,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 @@ -57,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); @@ -66,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 |