diff --git a/newlib/ChangeLog b/newlib/ChangeLog index ec398c1cb..f509eb2ba 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,11 @@ +2013-11-21 Joel Sherrill + + * libc/posix/readdir_r.c: Add restrict keyword. + * libc/machine/spu/sys/dirent.h, libc/sys/decstation/sys/dirent.h, + libc/sys/linux/sys/dirent.h, libc/sys/rtems/sys/dirent.h, + libc/sys/sparc64/sys/dirent.h, libc/sys/sun4/sys/dirent.h, + libc/sys/sysvi386/sys/dirent.h: Add readdir_r() prototype. + 2013-11-21 Joel Sherrill * libc/sys/rdos/stat.c: Remove stray +. diff --git a/newlib/libc/machine/spu/sys/dirent.h b/newlib/libc/machine/spu/sys/dirent.h index 6a158ec4a..60da65a62 100644 --- a/newlib/libc/machine/spu/sys/dirent.h +++ b/newlib/libc/machine/spu/sys/dirent.h @@ -54,6 +54,8 @@ typedef struct { 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); diff --git a/newlib/libc/posix/readdir_r.c b/newlib/libc/posix/readdir_r.c index 1d526e309..d13775b87 100644 --- a/newlib/libc/posix/readdir_r.c +++ b/newlib/libc/posix/readdir_r.c @@ -51,9 +51,9 @@ extern int getdents (int fd, void *dp, int count); */ int _DEFUN(readdir_r, (dirp, dp, dpp), - register DIR *dirp _AND - struct dirent *dp _AND - struct dirent **dpp) { + register DIR *__restrict dirp _AND + struct dirent *__restrict dp _AND + struct dirent **__restrict dpp) { struct dirent *tmpdp; diff --git a/newlib/libc/sys/decstation/sys/dirent.h b/newlib/libc/sys/decstation/sys/dirent.h index c5a90e9fe..c3abda639 100644 --- a/newlib/libc/sys/decstation/sys/dirent.h +++ b/newlib/libc/sys/decstation/sys/dirent.h @@ -25,6 +25,8 @@ typedef struct __dirdesc { 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 *); diff --git a/newlib/libc/sys/linux/sys/dirent.h b/newlib/libc/sys/linux/sys/dirent.h index ec8ed89d4..a67378b5b 100644 --- a/newlib/libc/sys/linux/sys/dirent.h +++ b/newlib/libc/sys/linux/sys/dirent.h @@ -36,6 +36,8 @@ typedef struct { 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 *); diff --git a/newlib/libc/sys/rtems/sys/dirent.h b/newlib/libc/sys/rtems/sys/dirent.h index c52c7bcf7..8d2aa38cb 100644 --- a/newlib/libc/sys/rtems/sys/dirent.h +++ b/newlib/libc/sys/rtems/sys/dirent.h @@ -26,6 +26,8 @@ typedef struct _dirdesc { 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); diff --git a/newlib/libc/sys/sparc64/sys/dirent.h b/newlib/libc/sys/sparc64/sys/dirent.h index 864bb5ca1..cb933b457 100644 --- a/newlib/libc/sys/sparc64/sys/dirent.h +++ b/newlib/libc/sys/sparc64/sys/dirent.h @@ -21,6 +21,8 @@ typedef struct __dirdesc { 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 *); diff --git a/newlib/libc/sys/sun4/sys/dirent.h b/newlib/libc/sys/sun4/sys/dirent.h index b7ca90b0d..2e6fc456f 100644 --- a/newlib/libc/sys/sun4/sys/dirent.h +++ b/newlib/libc/sys/sun4/sys/dirent.h @@ -23,6 +23,8 @@ typedef struct __dirdesc { 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 *); diff --git a/newlib/libc/sys/sysvi386/sys/dirent.h b/newlib/libc/sys/sysvi386/sys/dirent.h index 728042176..06af4faac 100644 --- a/newlib/libc/sys/sysvi386/sys/dirent.h +++ b/newlib/libc/sys/sysvi386/sys/dirent.h @@ -20,6 +20,8 @@ typedef struct _dirdesc { 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 *);