[3/6] Move common <sys/dirent.h> content to <dirent.h>

Message ID 20181008133900.3554-3-sebastian.huber@embedded-brains.de
State Accepted
Commit da418955f5dca2f8570561c5dd6e79e25ebaeba2
Headers show
Series
  • [1/6] O_CLOEXEC O_NOFOLLOW O_DIRECTORY O_EXEC O_DIRECT
Related show

Commit Message

Sebastian Huber Oct. 8, 2018, 1:38 p.m.
Move common content of the various <sys/dirent.h> and the latest FreeBSD
<dirent.h> to <dirent.h>.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>

---
 newlib/libc/include/dirent.h               | 81 +++++++++++++++++++++++++++---
 newlib/libc/machine/spu/sys/dirent.h       |  8 ---
 newlib/libc/sys/decstation/sys/dirent.h    |  7 ---
 newlib/libc/sys/phoenix/sys/dirent.h       | 13 -----
 newlib/libc/sys/rtems/include/sys/dirent.h | 20 --------
 newlib/libc/sys/sparc64/sys/dirent.h       |  7 ---
 newlib/libc/sys/sun4/sys/dirent.h          |  7 ---
 newlib/libc/sys/sysvi386/sys/dirent.h      |  7 ---
 winsup/cygwin/include/sys/dirent.h         | 32 ------------
 9 files changed, 75 insertions(+), 107 deletions(-)

-- 
2.16.4

Comments

Corinna Vinschen Oct. 10, 2018, 9:54 a.m. | #1
On Oct  8 15:38, Sebastian Huber wrote:
> Move common content of the various <sys/dirent.h> and the latest FreeBSD

> <dirent.h> to <dirent.h>.


Looks right to me.


Thanks,
Corinna

-- 
Corinna Vinschen
Cygwin Maintainer
Red Hat

Patch

diff --git a/newlib/libc/include/dirent.h b/newlib/libc/include/dirent.h
index 6135b9f6e..5d566a81e 100644
--- a/newlib/libc/include/dirent.h
+++ b/newlib/libc/include/dirent.h
@@ -1,8 +1,40 @@ 
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)dirent.h	8.3 (Berkeley) 8/10/94
+ * $FreeBSD: head/include/dirent.h 326024 2017-11-20 19:45:28Z pfg $
+ */
+
 #ifndef _DIRENT_H_
-#define _DIRENT_H_
-#ifdef __cplusplus
-extern "C" {
-#endif
+#define	_DIRENT_H_
+
 #include <sys/cdefs.h>
 #include <sys/dirent.h>
 
@@ -10,7 +42,44 @@  extern "C" {
 #define MAXNAMLEN 1024
 #endif
 
-#ifdef __cplusplus
-}
+__BEGIN_DECLS
+#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 700
+int	 alphasort(const struct dirent **, const struct dirent **);
+int	 dirfd(DIR *);
+#endif
+#if __BSD_VISIBLE
+int	 fdclosedir(DIR *);
+#endif
+DIR	*opendir(const char *);
+DIR	*fdopendir(int);
+struct dirent *
+	 readdir(DIR *);
+#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE >= 500
+int	 readdir_r(DIR *__restrict, struct dirent *__restrict,
+	    struct dirent **__restrict);
+#endif
+void	 rewinddir(DIR *);
+#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE >= 700
+int	 scandir(const char *, struct dirent ***,
+	    int (*)(const struct dirent *), int (*)(const struct dirent **,
+	    const struct dirent **));
 #endif
+#ifdef _COMPILING_NEWLIB
+void	 _seekdir(DIR *, long);
+#endif
+#if __MISC_VISIBLE || __XSI_VISIBLE
+#ifndef __INSIDE_CYGWIN__
+void	 seekdir(DIR *, long);
+long	 telldir(DIR *);
+#endif
+#endif
+int	 closedir(DIR *);
+#if __GNU_VISIBLE
+int	 scandirat(int, const char *, struct dirent ***,
+	    int (*) (const struct dirent *), int (*) (const struct dirent **,
+	    const struct dirent **));
+int	 versionsort(const struct dirent **, const struct dirent **);
+#endif
+__END_DECLS
+
 #endif /*_DIRENT_H_*/
diff --git a/newlib/libc/machine/spu/sys/dirent.h b/newlib/libc/machine/spu/sys/dirent.h
index 60da65a62..00ed41429 100644
--- a/newlib/libc/machine/spu/sys/dirent.h
+++ b/newlib/libc/machine/spu/sys/dirent.h
@@ -51,14 +51,6 @@  typedef struct {
   struct dirent dirent;
 } DIR;
 
-DIR *opendir(const char *);
-int closedir(DIR *);
-struct dirent *readdir (DIR *);
-int readdir_r (DIR *__restrict, struct dirent *__restrict,
-              struct dirent **__restrict);
-void rewinddir(DIR *);
-void seekdir(DIR *dir, off_t offset);
-off_t telldir(DIR *dir);
 #ifdef __cplusplus
 }
 #endif
diff --git a/newlib/libc/sys/decstation/sys/dirent.h b/newlib/libc/sys/decstation/sys/dirent.h
index c3abda639..f5febb077 100644
--- a/newlib/libc/sys/decstation/sys/dirent.h
+++ b/newlib/libc/sys/decstation/sys/dirent.h
@@ -23,13 +23,6 @@  typedef struct __dirdesc {
 
 # define __dirfd(dp)	((dp)->dd_fd)
 
-DIR *opendir (const char *);
-struct dirent *readdir (DIR *);
-int readdir_r (DIR *__restrict, struct dirent *__restrict,
-               struct dirent **__restrict);
-void rewinddir (DIR *);
-int closedir (DIR *);
-
 #include <sys/types.h>
 
 #define MAXNAMLEN	255
diff --git a/newlib/libc/sys/phoenix/sys/dirent.h b/newlib/libc/sys/phoenix/sys/dirent.h
index f8c72de02..3db267372 100644
--- a/newlib/libc/sys/phoenix/sys/dirent.h
+++ b/newlib/libc/sys/phoenix/sys/dirent.h
@@ -45,19 +45,6 @@  typedef struct {
 
 #define __dirfd(dir)	(dir)->dd_fd
 
-DIR *opendir(const char *name);
-struct dirent *readdir(DIR *dirp);
-void rewinddir(DIR *dirp);
-int closedir(DIR *dirp);
-
-long telldir(DIR *dirp);
-void seekdir(DIR *dirp, off_t loc);
-int scandir(const char *__dir,
-            struct dirent ***__namelist,
-            int (*select) (const struct dirent *),
-            int (*compar) (const struct dirent **, const struct dirent **));
-int alphasort(const struct dirent **__a, const struct dirent **__b);
-
 #define _seekdir		seekdir
 
 /* Declare which dirent fields are available in Phoenix-RTOS. */
diff --git a/newlib/libc/sys/rtems/include/sys/dirent.h b/newlib/libc/sys/rtems/include/sys/dirent.h
index bedb4e484..cb64307f9 100644
--- a/newlib/libc/sys/rtems/include/sys/dirent.h
+++ b/newlib/libc/sys/rtems/include/sys/dirent.h
@@ -24,19 +24,6 @@  typedef struct _dirdesc {
 
 # define __dirfd(dp)	((dp)->dd_fd)
 
-DIR *opendir(const char *);
-struct dirent *readdir(DIR *);
-int readdir_r(DIR *__restrict, struct dirent *__restrict,
-              struct dirent **__restrict);
-void rewinddir(DIR *);
-int closedir(DIR *);
-void seekdir(DIR *dir, long loc);
-long telldir(DIR *dir);
-
-#ifdef _COMPILING_NEWLIB
-void _seekdir(DIR *dir, long offset);
-#endif
-
 #include <sys/types.h>
 
 #include <limits.h>
@@ -54,13 +41,6 @@  struct dirent {
 #define	MAXNAMLEN NAME_MAX
 #endif
 
-int alphasort(const struct dirent **, const struct dirent **);
-int scandir ( const char *dirname,
-   struct dirent *** namelist,
-   int (*select)(const struct dirent *),
-   int (*dcomp)(const struct dirent **, const struct dirent **)
-);
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/newlib/libc/sys/sparc64/sys/dirent.h b/newlib/libc/sys/sparc64/sys/dirent.h
index cb933b457..ec6df0c83 100644
--- a/newlib/libc/sys/sparc64/sys/dirent.h
+++ b/newlib/libc/sys/sparc64/sys/dirent.h
@@ -19,13 +19,6 @@  typedef struct __dirdesc {
 
 # define __dirfd(dp)	((dp)->dd_fd)
 
-DIR *opendir (const char *);
-struct dirent *readdir (DIR *);
-int readdir_r (DIR *__restrict, struct dirent *__restrict,
-               struct dirent **__restrict);
-void rewinddir (DIR *);
-int closedir (DIR *);
-
 #include <sys/types.h>
 
 #undef  MAXNAMLEN	/* from unistd.h */
diff --git a/newlib/libc/sys/sun4/sys/dirent.h b/newlib/libc/sys/sun4/sys/dirent.h
index 2e6fc456f..02943fe6d 100644
--- a/newlib/libc/sys/sun4/sys/dirent.h
+++ b/newlib/libc/sys/sun4/sys/dirent.h
@@ -21,13 +21,6 @@  typedef struct __dirdesc {
 
 # define __dirfd(dp)	((dp)->dd_fd)
 
-DIR *opendir (const char *);
-struct dirent *readdir (DIR *);
-int readdir_r (DIR *__restrict, struct dirent *__restrict,
-              struct dirent **__restrict);
-void rewinddir (DIR *);
-int closedir (DIR *);
-
 #include <sys/types.h>
 
 #define MAXNAMLEN	255
diff --git a/newlib/libc/sys/sysvi386/sys/dirent.h b/newlib/libc/sys/sysvi386/sys/dirent.h
index 06af4faac..7851390c0 100644
--- a/newlib/libc/sys/sysvi386/sys/dirent.h
+++ b/newlib/libc/sys/sysvi386/sys/dirent.h
@@ -18,13 +18,6 @@  typedef struct _dirdesc {
 
 # define __dirfd(dp)	((dp)->dd_fd)
 
-DIR *opendir (const char *);
-struct dirent *readdir (DIR *);
-int readdir_r (DIR *__restrict, struct dirent *__restrict,
-               struct dirent **__restrict);
-void rewinddir (DIR *);
-int closedir (DIR *);
-
 #include <sys/types.h>
 
 struct dirent {
diff --git a/winsup/cygwin/include/sys/dirent.h b/winsup/cygwin/include/sys/dirent.h
index 48688efe4..177a553b2 100644
--- a/winsup/cygwin/include/sys/dirent.h
+++ b/winsup/cygwin/include/sys/dirent.h
@@ -60,38 +60,6 @@  typedef struct __DIR
 #pragma pack(pop)
 #endif
 
-DIR *opendir (const char *);
-DIR *fdopendir (int);
-struct dirent *readdir (DIR *);
-int readdir_r (DIR * __restrict, struct dirent * __restrict,
-	       struct dirent ** __restrict);
-void rewinddir (DIR *);
-int closedir (DIR *);
-
-int dirfd (DIR *);
-
-#if __MISC_VISIBLE || __XSI_VISIBLE
-#ifndef __INSIDE_CYGWIN__
-long telldir (DIR *);
-void seekdir (DIR *, long loc);
-#endif
-#endif
-
-#if __MISC_VISIBLE || __POSIX_VISIBLE >= 200809
-int scandir (const char *__dir,
-	     struct dirent ***__namelist,
-	     int (*select) (const struct dirent *),
-	     int (*compar) (const struct dirent **, const struct dirent **));
-int alphasort (const struct dirent **__a, const struct dirent **__b);
-#endif
-
-#if __GNU_VISIBLE
-int scandirat (int __dirfd, const char *__dir, struct dirent ***__namelist,
-	       int (*select) (const struct dirent *),
-	       int (*compar) (const struct dirent **, const struct dirent **));
-int versionsort (const struct dirent **__a, const struct dirent **__b);
-#endif
-
 #if __BSD_VISIBLE
 #ifdef _DIRENT_HAVE_D_TYPE
 /* File types for `d_type'.  */