summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@hack.frob.com>2012-08-07 13:17:26 -0700
committerRoland McGrath <roland@hack.frob.com>2012-08-07 13:17:26 -0700
commitf0bd3e25fb73f0fe6574282ec84610b0521f4ac1 (patch)
tree9ac70b6de6bfe8173df38bedf749641ef1d10921 /bits/dirent.h
parentDefine _DIRENT_MATCHES_DIRENT64 in bsd4.4/bits/dirent.h (diff)
downloadglibc-f0bd3e25fb73f0fe6574282ec84610b0521f4ac1.tar.gz
glibc-f0bd3e25fb73f0fe6574282ec84610b0521f4ac1.tar.bz2
glibc-f0bd3e25fb73f0fe6574282ec84610b0521f4ac1.zip
Make the bsd4.4/bits/dirent.h be the generic one.
Diffstat (limited to 'bits/dirent.h')
-rw-r--r--bits/dirent.h35
1 files changed, 28 insertions, 7 deletions
diff --git a/bits/dirent.h b/bits/dirent.h
index 5b803c6539..948510c068 100644
--- a/bits/dirent.h
+++ b/bits/dirent.h
@@ -1,4 +1,4 @@
-/* Directory entry structure `struct dirent'. Stub version.
+/* Directory entry structure `struct dirent'. 4.4BSD/Generic version.
Copyright (C) 1996-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -22,17 +22,38 @@
struct dirent
{
- char d_name[1]; /* Variable length. */
- int d_fileno;
+#ifndef __USE_FILE_OFFSET64
+ __ino_t d_ino; /* File serial number. */
+#else
+ __ino64_t d_ino;
+#endif
+ unsigned short int d_reclen; /* Length of the whole `struct dirent'. */
+ unsigned char d_type; /* File type, possibly unknown. */
+ unsigned char d_namlen; /* Length of the file name. */
+
+ /* Only this member is in the POSIX standard. */
+ char d_name[1]; /* File name (actually longer). */
};
#ifdef __USE_LARGEFILE64
struct dirent64
{
- char d_name[1]; /* Variable length. */
- int d_fileno;
+ __ino64_t d_ino;
+ unsigned short int d_reclen;
+ unsigned char d_type;
+ unsigned char d_namlen;
+
+ char d_name[1];
};
#endif
-/* Inform libc code that these two types are identical. */
-#define _DIRENT_MATCHES_DIRENT64 1
+#define d_fileno d_ino /* Backwards compatibility. */
+
+#define _DIRENT_HAVE_D_RECLEN 1
+#define _DIRENT_HAVE_D_NAMLEN 1
+#define _DIRENT_HAVE_D_TYPE 1
+
+#ifdef __INO_T_MATCHES_INO64_T
+/* Inform libc code that these two types are effectively identical. */
+# define _DIRENT_MATCHES_DIRENT64 1
+#endif