1  /* Copyright (C) 1996-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library.  If not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #ifndef _BITS_DIRENT_H
      19  #define _BITS_DIRENT_H	1
      20  
      21  struct dirent
      22    {
      23  #ifdef __USE_FILE_OFFSET64
      24      __ino64_t d_ino;
      25  #else
      26      __ino_t d_ino;
      27      int __pad;
      28  #endif
      29      __off_t d_off;
      30      unsigned short int d_reclen;
      31      unsigned char d_type;
      32      char d_name[256];		/* We must not include limits.h! */
      33    };
      34  
      35  #ifdef __USE_LARGEFILE64
      36  /* Note dirent64 is the same as dirent.  */
      37  struct dirent64
      38    {
      39      __ino64_t d_ino;
      40      __off64_t d_off;
      41      unsigned short int d_reclen;
      42      unsigned char d_type;
      43      char d_name[256];		/* We must not include limits.h! */
      44    };
      45  #endif
      46  
      47  #define d_fileno	d_ino	/* Backwards compatibility.  */
      48  
      49  #undef  _DIRENT_HAVE_D_NAMLEN
      50  #define _DIRENT_HAVE_D_RECLEN
      51  #define _DIRENT_HAVE_D_OFF
      52  #define _DIRENT_HAVE_D_TYPE
      53  
      54  /* Inform libc code that these two types are effectively identical.  */
      55  #define _DIRENT_MATCHES_DIRENT64	1
      56  
      57  #endif /* bits/dirent.h */