aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin/include/sys/dirent.h
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/include/sys/dirent.h')
-rw-r--r--winsup/cygwin/include/sys/dirent.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/winsup/cygwin/include/sys/dirent.h b/winsup/cygwin/include/sys/dirent.h
new file mode 100644
index 0000000..a077169
--- /dev/null
+++ b/winsup/cygwin/include/sys/dirent.h
@@ -0,0 +1,97 @@
+/* Posix dirent.h for WIN32.
+
+ Copyright 2001 Red Hat, Inc.
+
+ This software is a copyrighted work licensed under the terms of the
+ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
+ details. */
+
+/* Including this file should not require any Windows headers. */
+
+#ifndef _SYS_DIRENT_H
+#define _SYS_DIRENT_H
+
+#include <sys/types.h>
+
+#define __DIRENT_VERSION 2
+
+#pragma pack(push,4)
+#ifdef __INSIDE_CYGWIN__
+struct dirent
+{
+ long d_version; /* Used since Cygwin 1.3.3. */
+ __ino64_t d_ino; /* still junk but with more bits */
+ long d_fd; /* File descriptor of open directory.
+ Used since Cygwin 1.3.3. */
+ __ino32_t old_d_ino; /* Just for compatibility, it's junk */
+ char d_name[256]; /* FIXME: use NAME_MAX? */
+};
+#else
+#ifdef __CYGWIN_USE_BIG_TYPES__
+struct dirent
+{
+ long d_version;
+ ino_t d_ino;
+ long d_fd;
+ unsigned long old_d_ino;
+ char d_name[256];
+};
+#else
+struct dirent
+{
+ long d_version;
+ long d_reserved[2];
+ long d_fd;
+ ino_t d_ino;
+ char d_name[256];
+};
+#endif
+#endif
+#pragma pack(pop)
+
+#define __DIRENT_COOKIE 0xdede4242
+
+typedef struct __DIR
+{
+ /* 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 __INSIDE_CYGWIN__
+ struct
+ {
+ void *__handle;
+ void *__fh;
+ } __d_data;
+#endif
+ char __d_filler[16];
+ } __d_u;
+} DIR;
+
+DIR *opendir (const char *);
+struct dirent *readdir (DIR *);
+void rewinddir (DIR *);
+int closedir (DIR *);
+
+int dirfd (DIR *);
+
+#ifndef _POSIX_SOURCE
+#ifndef __INSIDE_CYGWIN__
+off_t telldir (DIR *);
+void seekdir (DIR *, off_t loc);
+#endif
+
+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