Discussion:
[newlib-cygwin] Move common <sys/dirent.h> content to <dirent.h>
Sebastian Huber
2018-10-11 08:22:33 UTC
Permalink
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=da418955f5dca2f8570561c5dd6e79e25ebaeba2

commit da418955f5dca2f8570561c5dd6e79e25ebaeba2
Author: Sebastian Huber <***@embedded-brains.de>
Date: Mon Oct 8 10:49:26 2018 +0200

Move common <sys/dirent.h> content to <dirent.h>

Move common content of the various <sys/dirent.h> and the latest FreeBSD
<dirent.h> to <dirent.h>.

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

Diff:
---
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(-)

diff --git a/newlib/libc/include/dirent.h b/newlib/libc/include/dirent.h
index 6135b9f..5d566a8 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 60da65a..00ed414 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 c3abda6..f5febb0 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 f8c72de..3db2673 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 bedb4e4..cb64307 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 cb933b4..ec6df0c 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 2e6fc45..02943fe 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 06af4fa..7851390 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 48688ef..177a553 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'. */

Loading...