master
 1/* Copyright (C) 1996-2025 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 _DIRENT_H
19# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
20#endif
21
22struct dirent
23  {
24#ifndef __USE_FILE_OFFSET64
25    __ino_t d_ino;
26    __off_t d_off;
27#else
28    __ino64_t d_ino;
29    __off64_t d_off;
30#endif
31    unsigned short int d_reclen;
32    unsigned char d_type;
33    char d_name[256];		/* We must not include limits.h! */
34  };
35
36#ifdef __USE_LARGEFILE64
37struct 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#if defined __OFF_T_MATCHES_OFF64_T && defined __INO_T_MATCHES_INO64_T
55/* Inform libc code that these two types are effectively identical.  */
56# define _DIRENT_MATCHES_DIRENT64	1
57#else
58# define _DIRENT_MATCHES_DIRENT64	0
59#endif