about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/readdir.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/mach/hurd/readdir.c')
-rw-r--r--sysdeps/mach/hurd/readdir.c66
1 files changed, 0 insertions, 66 deletions
diff --git a/sysdeps/mach/hurd/readdir.c b/sysdeps/mach/hurd/readdir.c
deleted file mode 100644
index 147a0bc469..0000000000
--- a/sysdeps/mach/hurd/readdir.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (C) 1993-2017 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
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stddef.h>
-#include <dirent.h>
-#include <unistd.h>
-#include <endian.h>
-#include <assert.h>
-
-/* Read a directory entry from DIRP.  */
-struct dirent *
-__readdir (DIR *dirp)
-{
-  struct dirent64 *entry64 = __readdir64 (dirp);
-
-  if (sizeof (struct dirent64) == sizeof (struct dirent))
-    /* We should in fact just be an alias to readdir64 on this machine.  */
-    return (struct dirent *) entry64;
-
-  /* These are all compile-time constants.  We know that d_ino is the first
-     member and that the layout of the following members matches exactly in
-     both structures.  */
-  assert (offsetof (struct dirent, d_ino) == 0);
-  assert (offsetof (struct dirent64, d_ino) == 0);
-# define MATCH(memb)							      \
-  assert (offsetof (struct dirent64, memb) - sizeof (entry64->d_ino)	      \
-	  == offsetof (struct dirent, memb) - sizeof (ino_t))
-  MATCH (d_reclen);
-  MATCH (d_type);
-  MATCH (d_namlen);
-# undef MATCH
-
-  if (entry64 == NULL)
-    return NULL;
-
-  struct dirent *const entry = ((void *) (&entry64->d_ino + 1)
-				- sizeof entry->d_ino);
-  const ino_t d_ino = entry64->d_ino;
-  if (d_ino != entry64->d_ino)
-    {
-      __set_errno (EOVERFLOW);
-      return NULL;
-    }
-# if BYTE_ORDER != BIG_ENDIAN	/* We just skipped over the zero high word.  */
-  entry->d_ino = d_ino;	/* ... or the nonzero low word, swap it.  */
-# endif
-  entry->d_reclen -= sizeof entry64->d_ino - sizeof entry->d_ino;
-  return entry;
-}
-
-weak_alias (__readdir, readdir)