summaryrefslogtreecommitdiff
path: root/newlib/libc/sys/cygwin/sys/dirent.h
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/cygwin/sys/dirent.h')
-rw-r--r--newlib/libc/sys/cygwin/sys/dirent.h58
1 files changed, 58 insertions, 0 deletions
diff --git a/newlib/libc/sys/cygwin/sys/dirent.h b/newlib/libc/sys/cygwin/sys/dirent.h
new file mode 100644
index 00000000000..3c0ec4e770d
--- /dev/null
+++ b/newlib/libc/sys/cygwin/sys/dirent.h
@@ -0,0 +1,58 @@
+/* Posix dirent.h for WIN32. */
+
+/* Including this file should not require any Windows headers. */
+
+#ifndef _SYS_DIRENT_H
+#define _SYS_DIRENT_H
+
+#include <sys/types.h>
+
+struct dirent
+{
+ long __d_reserved[4];
+ ino_t d_ino; /* Just for compatibility, it's junk */
+ char d_name[256]; /* FIXME: use NAME_MAX? */
+};
+
+#define __DIRENT_COOKIE 0xdede4242
+
+typedef struct
+{
+ /* This is first to set alignment in non _COMPILING_NEWLIB case. */
+ unsigned long __d_cookie;
+ struct dirent *__d_dirent;
+ char *__d_dirname; /* directory name with trailing '*' */
+ off_t __d_position; /* used by telldir/seekdir */
+ unsigned long __d_dirhash; /* hash of directory name for use by
+ readdir */
+ union
+ {
+#ifdef _COMPILING_NEWLIB
+ struct
+ {
+ HANDLE __handle;
+ char __open_p;
+ } __d_data;
+#endif
+ char __d_filler[16];
+ } __d_u;
+} DIR;
+
+DIR *opendir (const char *);
+struct dirent *readdir (DIR *);
+void rewinddir (DIR *);
+int closedir (DIR *);
+
+#ifndef _POSIX_SOURCE
+off_t telldir (DIR *);
+void seekdir (DIR *, off_t loc);
+
+int scandir (const char *__dir,
+ struct dirent ***__namelist,
+ int (*select) (const struct dirent *),
+ int (*compar) (const struct dirent **, const struct dirent **));
+
+int alphasort (const struct dirent **__a, const struct dirent **__b);
+#endif /* _POSIX_SOURCE */
+
+#endif