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 #include @@ -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 #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 #include @@ -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 #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 #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 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'. */