Initialize nscd stats data [BZ #17892]
[platform/upstream/glibc.git] / bits / dirent.h
index ac1928d..a6d2eb2 100644 (file)
@@ -1,5 +1,5 @@
-/* Directory entry structure `struct dirent'.  Stub version.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Directory entry structure `struct dirent'.  4.4BSD/Generic version.
+   Copyright (C) 1996-2015 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
 
 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
+
+#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