From f0bd3e25fb73f0fe6574282ec84610b0521f4ac1 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Tue, 7 Aug 2012 13:17:26 -0700 Subject: [PATCH] Make the bsd4.4/bits/dirent.h be the generic one. --- ChangeLog | 3 ++ bits/dirent.h | 35 ++++++++++++---- sysdeps/unix/bsd/bsd4.4/bits/dirent.h | 59 --------------------------- 3 files changed, 31 insertions(+), 66 deletions(-) delete mode 100644 sysdeps/unix/bsd/bsd4.4/bits/dirent.h diff --git a/ChangeLog b/ChangeLog index a2b3a9bcb2..1e7a85a73d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2012-08-07 Roland McGrath + * sysdeps/unix/bsd/bsd4.4/bits/dirent.h: Renamed to ... + * bits/dirent.h: ... here. + * sysdeps/unix/bsd/bsd4.4/bits/dirent.h [__INO_T_MATCHES_INO64_T] (_DIRENT_MATCHES_DIRENT64): New macro. 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 diff --git a/sysdeps/unix/bsd/bsd4.4/bits/dirent.h b/sysdeps/unix/bsd/bsd4.4/bits/dirent.h deleted file mode 100644 index 30b9940d6b..0000000000 --- a/sysdeps/unix/bsd/bsd4.4/bits/dirent.h +++ /dev/null @@ -1,59 +0,0 @@ -/* Directory entry structure `struct dirent'. 4.4BSD version. - Copyright (C) 1996-2012 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 - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -#ifndef _DIRENT_H -# error "Never use directly; include instead." -#endif - -struct dirent - { -#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 - { - __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