Add __retrict.
authordrepper <drepper>
Fri, 4 Dec 1998 20:53:50 +0000 (20:53 +0000)
committerdrepper <drepper>
Fri, 4 Dec 1998 20:53:50 +0000 (20:53 +0000)
21 files changed:
argp/argp.h
dirent/dirent.h
elf/dlfcn.h
grp/grp.h
iconv/iconv.h
inet/aliases.h
libio/libio.h
libio/stdio.h
locale/locale.h
misc/mntent.h
posix/wordexp.h
pwd/pwd.h
resolv/netdb.h
rt/aio.h
stdio-common/printf.h
stdlib/monetary.h
stdlib/stdlib.h
string/argz.h
string/envz.h
string/string.h
time/time.h

index cc35970..eb570f1 100644 (file)
@@ -388,12 +388,15 @@ struct argp_state
    routine returned a non-zero value, it is returned; otherwise 0 is
    returned.  This function may also call exit unless the ARGP_NO_HELP flag
    is set.  INPUT is a pointer to a value to be passed in to the parser.  */
-extern error_t argp_parse __P ((__const struct argp *__argp,
-                               int __argc, char **__argv, unsigned __flags,
-                               int *__arg_index, void *__input));
-extern error_t __argp_parse __P ((__const struct argp *__argp,
-                                 int __argc, char **__argv, unsigned __flags,
-                                 int *__arg_index, void *__input));
+extern error_t argp_parse __P ((__const struct argp *__restrict __argp,
+                               int __argc, char **__restrict __argv,
+                               unsigned __flags, int *__restrict __arg_index,
+                               void *__restrict __input));
+extern error_t __argp_parse __P ((__const struct argp *__restrict __argp,
+                                 int __argc, char **__restrict __argv,
+                                 unsigned __flags,
+                                 int *__restrict __arg_index,
+                                 void *__restrict __input));
 \f
 /* Global variables.  */
 
@@ -408,8 +411,9 @@ extern __const char *argp_program_version;
    calls this function with a stream to print the version to and a pointer to
    the current parsing state, and then exits (unless the ARGP_NO_EXIT flag is
    used).  This variable takes precedent over ARGP_PROGRAM_VERSION.  */
-extern void (*argp_program_version_hook) __PMT ((FILE *__stream,
-                                                struct argp_state *__state));
+extern void (*argp_program_version_hook) __PMT ((FILE *__restrict __stream,
+                                                struct argp_state *__restrict
+                                                __state));
 
 /* If defined or set by the user program, it should point to string that is
    the bug-reporting address for the program.  It will be printed by
@@ -454,10 +458,12 @@ extern error_t argp_err_exit_status;
 
 /* Output a usage message for ARGP to STREAM.  FLAGS are from the set
    ARGP_HELP_*.  */
-extern void argp_help __P ((__const struct argp *__argp, FILE *__stream,
-                           unsigned __flags, char *__name));
-extern void __argp_help __P ((__const struct argp *__argp, FILE *__stream,
-                             unsigned __flags, char *__name));
+extern void argp_help __P ((__const struct argp *__restrict __argp,
+                           FILE *__restrict __stream,
+                           unsigned __flags, char *__restrict __name));
+extern void __argp_help __P ((__const struct argp *__restrict __argp,
+                             FILE *__restrict __stream, unsigned __flags,
+                             char *__name));
 \f
 /* The following routines are intended to be called from within an argp
    parsing routine (thus taking an argp_state structure as the first
@@ -469,10 +475,14 @@ extern void __argp_help __P ((__const struct argp *__argp, FILE *__stream,
 
 /* Output, if appropriate, a usage message for STATE to STREAM.  FLAGS are
    from the set ARGP_HELP_*.  */
-extern void argp_state_help __P ((__const struct argp_state *__state,
-                                 FILE *__stream, unsigned __flags));
-extern void __argp_state_help __P ((__const struct argp_state *__state,
-                                   FILE *__stream, unsigned __flags));
+extern void argp_state_help __P ((__const struct argp_state *__restrict
+                                 __state,
+                                 FILE *__restrict __stream,
+                                 unsigned int __flags));
+extern void __argp_state_help __P ((__const struct argp_state *__restrict
+                                   __state,
+                                   FILE *__restrict __stream,
+                                   unsigned int __flags));
 
 /* Possibly output the standard usage message for ARGP to stderr and exit.  */
 extern void argp_usage __P ((__const struct argp_state *__state));
@@ -481,11 +491,11 @@ extern void __argp_usage __P ((__const struct argp_state *__state));
 /* If appropriate, print the printf string FMT and following args, preceded
    by the program name and `:', to stderr, and followed by a `Try ... --help'
    message, then exit (1).  */
-extern void argp_error __P ((__const struct argp_state *__state,
-                            __const char *__fmt, ...))
+extern void argp_error __P ((__const struct argp_state *__restrict __state,
+                            __const char *__restrict __fmt, ...))
      __attribute__ ((__format__ (__printf__, 2, 3)));
-extern void __argp_error __P ((__const struct argp_state *__state,
-                              __const char *__fmt, ...))
+extern void __argp_error __P ((__const struct argp_state *__restrict __state,
+                              __const char *__restrict __fmt, ...))
      __attribute__ ((__format__ (__printf__, 2, 3)));
 
 /* Similar to the standard gnu error-reporting function error(), but will
@@ -496,13 +506,13 @@ extern void __argp_error __P ((__const struct argp_state *__state,
    difference between this function and argp_error is that the latter is for
    *parsing errors*, and the former is for other problems that occur during
    parsing but don't reflect a (syntactic) problem with the input.  */
-extern void argp_failure __P ((__const struct argp_state *__state,
+extern void argp_failure __P ((__const struct argp_state *__restrict __state,
                               int __status, int __errnum,
-                              __const char *__fmt, ...))
+                              __const char *__restrict __fmt, ...))
      __attribute__ ((__format__ (__printf__, 4, 5)));
-extern void __argp_failure __P ((__const struct argp_state *__state,
+extern void __argp_failure __P ((__const struct argp_state *__restrict __state,
                                 int __status, int __errnum,
-                                __const char *__fmt, ...))
+                                __const char *__restrict __fmt, ...))
      __attribute__ ((__format__ (__printf__, 4, 5)));
 
 /* Returns true if the option OPT is a valid short option.  */
@@ -516,10 +526,11 @@ extern int __option_is_end __P ((__const struct argp_option *__opt));
 
 /* Return the input field for ARGP in the parser corresponding to STATE; used
    by the help routines.  */
-extern void *_argp_input __P ((__const struct argp *argp,
-                              __const struct argp_state *state));
-extern void *__argp_input __P ((__const struct argp *argp,
-                               __const struct argp_state *state));
+extern void *_argp_input __P ((__const struct argp *__restrict __argp,
+                              __const struct argp_state *__restrict __state));
+extern void *__argp_input __P ((__const struct argp *__restrict __argp,
+                               __const struct argp_state *__restrict
+                               __state));
 \f
 #ifdef __USE_EXTERN_INLINES
 
index e286498..375d66e 100644 (file)
@@ -143,12 +143,14 @@ extern struct dirent64 *readdir64 __P ((DIR *__dirp));
 /* Reentrant version of `readdir'.  Return in RESULT a pointer to the
    next entry.  */
 # ifndef __USE_FILE_OFFSET64
-extern int readdir_r __P ((DIR *__dirp, struct dirent *__entry,
-                          struct dirent **__result));
+extern int readdir_r __P ((DIR *__restrict __dirp,
+                          struct dirent *__restrict __entry,
+                          struct dirent **__restrict __result));
 # else
 #  ifdef __REDIRECT
-extern int __REDIRECT (readdir_r, __P ((DIR *__dirp, struct dirent *__entry,
-                                   struct dirent **__result)),
+extern int __REDIRECT (readdir_r, __P ((DIR *__restrict __dirp,
+                                       struct dirent *__restrict __entry,
+                                       struct dirent **__restrict __result)),
                    readdir64_r);
 #  else
 #   define readdir_r readdir64_r
@@ -156,8 +158,9 @@ extern int __REDIRECT (readdir_r, __P ((DIR *__dirp, struct dirent *__entry,
 # endif
 
 # ifdef __USE_LARGEFILE64
-extern int readdir64_r __P ((DIR *__dirp, struct dirent64 *__entry,
-                            struct dirent64 **__result));
+extern int readdir64_r __P ((DIR *__restrict __dirp,
+                            struct dirent64 *__restrict __entry,
+                            struct dirent64 **__restrict __result));
 # endif
 #endif /* POSIX or misc */
 
@@ -203,14 +206,15 @@ extern int dirfd __P ((DIR *__dirp));
    sorted using qsort with CMP, and collected in a malloc'd array in
    *NAMELIST.  Returns the number of entries selected, or -1 on error.  */
 # ifndef __USE_FILE_OFFSET64
-extern int scandir __P ((__const char *__dir, struct dirent ***__namelist,
+extern int scandir __P ((__const char *__restrict __dir,
+                        struct dirent ***__restrict __namelist,
                         int (*__selector) (__const struct dirent *),
                         int (*__cmp) (__const __ptr_t, __const __ptr_t)));
 # else
 #  ifdef __REDIRECT
 extern int __REDIRECT (scandir,
-                      __P ((__const char *__dir,
-                            struct dirent ***__namelist,
+                      __P ((__const char *__restrict __dir,
+                            struct dirent ***__restrict __namelist,
                             int (*__selector) (__const struct dirent *),
                             int (*__cmp) (__const __ptr_t, __const __ptr_t))),
                       scandir64);
@@ -222,7 +226,8 @@ extern int __REDIRECT (scandir,
 # if defined __USE_GNU && defined __USE_LARGEFILE64
 /* This function is like `scandir' but it uses the 64bit dirent structure.
    Please note that the CMP function must now work with struct dirent64 **.  */
-extern int scandir64 __P ((__const char *__dir, struct dirent64 ***__namelist,
+extern int scandir64 __P ((__const char *__restrict __dir,
+                          struct dirent64 ***__restrict __namelist,
                           int (*__selector) (__const struct dirent64 *),
                           int (*__cmp) (__const __ptr_t, __const __ptr_t)));
 # endif
@@ -267,8 +272,9 @@ extern int versionsort64 __P ((__const __ptr_t __e1, __const __ptr_t __e2));
    Reading starts at offset *BASEP, and *BASEP is updated with the new
    position after reading.  Returns the number of bytes read; zero when at
    end of directory; or -1 for errors.  */
-extern __ssize_t getdirentries __P ((int __fd, char *__buf,
-                                    size_t __nbytes, __off_t *__basep));
+extern __ssize_t getdirentries __P ((int __fd, char *__restrict __buf,
+                                    size_t __nbytes,
+                                    __off_t *__restrict __basep));
 
 
 #endif /* Use BSD or misc.  */
index d2a27b8..80fd656 100644 (file)
@@ -50,13 +50,15 @@ extern int dlclose __P ((void *__handle));
 
 /* Find the run-time address in the shared object HANDLE refers to
    of the symbol called NAME.  */
-extern void *dlsym __P ((void *__handle, __const char *__name));
+extern void *dlsym __P ((void *__restrict __handle,
+                        __const char *__restrict __name));
 
 #ifdef __USE_GNU
 /* Find the run-time address in the shared object HANDLE refers to
    of the symbol called NAME with VERSION.  */
-extern void *dlvsym __P ((void *__handle, __const char *__name,
-                         __const char *__version));
+extern void *dlvsym __P ((void *__restrict __handle,
+                         __const char *__restrict __name,
+                         __const char *__restrict __version));
 #endif
 
 /* When any of the above functions fails, call this function
index 9b71df8..45cb6de 100644 (file)
--- a/grp/grp.h
+++ b/grp/grp.h
@@ -73,7 +73,8 @@ extern struct group *fgetgrent __P ((FILE *__stream));
 
 #ifdef __USE_GNU
 /* Write the given entry onto the given stream.  */
-extern int putgrent __P ((__const struct group *__p, FILE *__f));
+extern int putgrent __P ((__const struct group *__restrict __p,
+                         FILE *__restrict __f));
 #endif
 
 /* Search for an entry with a matching group ID.  */
@@ -99,26 +100,30 @@ extern struct group *getgrnam __P ((__const char *__name));
    POSIX people would choose.  */
 
 # if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-extern int getgrent_r __P ((struct group *__resultbuf, char *__buffer,
-                           size_t __buflen, struct group **__result));
+extern int getgrent_r __P ((struct group *__restrict __resultbuf,
+                           char *__restrict __buffer, size_t __buflen,
+                           struct group **__restrict __result));
 # endif
 
 /* Search for an entry with a matching group ID.  */
-extern int getgrgid_r __P ((__gid_t __gid, struct group *__resultbuf,
-                           char *__buffer, size_t __buflen,
-                           struct group **__result));
+extern int getgrgid_r __P ((__gid_t __gid,
+                           struct group *__restrict __resultbuf,
+                           char *__restrict __buffer, size_t __buflen,
+                           struct group **__restrict __result));
 
 /* Search for an entry with a matching group name.  */
-extern int getgrnam_r __P ((__const char *__name, struct group *__resultbuf,
-                           char *__buffer, size_t __buflen,
-                           struct group **__result));
+extern int getgrnam_r __P ((__const char *__restrict __name,
+                           struct group *__restrict __resultbuf,
+                           char *__restrict __buffer, size_t __buflen,
+                           struct group **__restrict __result));
 
 # ifdef        __USE_SVID
 /* Read a group entry from STREAM.  This function is not standardized
    an probably never will.  */
-extern int fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
-                            char *__buffer, size_t __buflen,
-                            struct group **__result));
+extern int fgetgrent_r __P ((FILE *__restrict __stream,
+                            struct group *__restrict __resultbuf,
+                            char *__restrict __buffer, size_t __buflen,
+                            struct group **__restrict __result));
 # endif
 
 #endif /* POSIX or reentrant */
index ceb120d..dac885b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 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
@@ -39,8 +39,10 @@ extern iconv_t iconv_open __P ((__const char *__tocode,
    code conversion algorithm specified by CD and place up to
    *OUTBYTESLEFT bytes in buffer at *OUTBUF.  */
 extern size_t iconv __P ((iconv_t cd,
-                         __const char **__inbuf, size_t *__inbytesleft,
-                         char **__outbuf, size_t *__outbytesleft));
+                         __const char **__restrict __inbuf,
+                         size_t *__restrict __inbytesleft,
+                         char **__restrict __outbuf,
+                         size_t *__restrict __outbytesleft));
 
 /* Free resources allocated for descriptor CD for code conversion.  */
 extern int iconv_close __P ((iconv_t __cd));
index c6e8290..8c47fe5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 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
@@ -46,17 +46,19 @@ extern void endaliasent __P ((void));
 extern struct aliasent *getaliasent __P ((void));
 
 /* Get the next entry from the alias data base and put it in RESULT_BUF.  */
-extern int getaliasent_r __P ((struct aliasent *__result_buf, char *__buffer,
-                              size_t __buflen, struct aliasent **__result));
+extern int getaliasent_r __P ((struct aliasent *__restrict __result_buf,
+                              char *__restrict __buffer,
+                              size_t __buflen,
+                              struct aliasent **__restrict __result));
 
 /* Get alias entry corresponding to NAME.  */
 extern struct aliasent *getaliasbyname __P ((__const char *__name));
 
 /* Get alias entry corresponding to NAME and put it in RESULT_BUF.  */
-extern int getaliasbyname_r __P ((__const char *__name,
-                                 struct aliasent *__result_buf,
-                                 char *__buffer, size_t __buflen,
-                                 struct aliasent **__result));
+extern int getaliasbyname_r __P ((__const char *__restrict __name,
+                                 struct aliasent *__restrict __result_buf,
+                                 char *__restrict __buffer, size_t __buflen,
+                                 struct aliasent **__restrict __result));
 
 __END_DECLS
 
index 011d440..d1dcc7d 100644 (file)
@@ -325,8 +325,10 @@ extern int _IO_ftrylockfile __P ((_IO_FILE *));
 # define _IO_cleanup_region_end(_Doit) /**/
 #endif /* !_IO_MTSAFE_IO */
 
-extern int _IO_vfscanf __P ((_IO_FILE *, const char *, _IO_va_list, int *));
-extern int _IO_vfprintf __P ((_IO_FILE *, const char *, _IO_va_list));
+extern int _IO_vfscanf __P ((_IO_FILE * __restrict, const char * __restrict,
+                            _IO_va_list, int *__restrict));
+extern int _IO_vfprintf __P ((_IO_FILE *__restrict, const char *__restrict,
+                             _IO_va_list));
 extern _IO_ssize_t _IO_padn __P ((_IO_FILE *, int, _IO_ssize_t));
 extern _IO_size_t _IO_sgetn __P ((_IO_FILE *, void *, _IO_size_t));
 
index cd7205f..edbd82b 100644 (file)
@@ -211,13 +211,15 @@ extern FILE *fdopen __P ((int __fd, __const char *__modes));
 #ifdef __USE_GNU
 /* Create a new stream that refers to the given magic cookie,
    and uses the given functions for input and output.  */
-extern FILE *fopencookie __P ((void *__magic_cookie, __const char *__modes,
+extern FILE *fopencookie __P ((void *__restrict __magic_cookie,
+                              __const char *__restrict __modes,
                               _IO_cookie_io_functions_t __io_funcs));
 
 /* Open a stream that writes into a malloc'd buffer that is expanded as
    necessary.  *BUFLOC and *SIZELOC are updated with the buffer's location
    and the number of characters written on fflush or fclose.  */
-extern FILE *open_memstream __P ((char **__bufloc, size_t *__sizeloc));
+extern FILE *open_memstream __P ((char **__restrict __bufloc,
+                                 size_t *__restrict __sizeloc));
 #endif
 
 
@@ -233,7 +235,8 @@ extern int setvbuf __P ((FILE *__restrict __stream, char *__restrict __buf,
 #ifdef __USE_BSD
 /* If BUF is NULL, make STREAM unbuffered.
    Else make it use SIZE bytes of BUF for buffering.  */
-extern void setbuffer __P ((FILE *__stream, char *__buf, size_t __size));
+extern void setbuffer __P ((FILE *__restrict __stream, char *__restrict __buf,
+                           size_t __size));
 
 /* Make STREAM line-buffered.  */
 extern void setlinebuf __P ((FILE *__stream));
@@ -398,14 +401,17 @@ extern char *gets __P ((char *__s));
    NULL), pointing to *N characters of space.  It is realloc'd as
    necessary.  Returns the number of characters read (not including the
    null terminator), or -1 on error or EOF.  */
-extern _IO_ssize_t __getdelim __P ((char **__lineptr, size_t *__n,
-                                   int __delimiter, FILE *__stream));
-extern _IO_ssize_t getdelim __P ((char **__lineptr, size_t *__n,
-                                 int __delimiter, FILE *__stream));
+extern _IO_ssize_t __getdelim __P ((char **__restrict __lineptr,
+                                   size_t *__restrict __n, int __delimiter,
+                                   FILE *__restrict __stream));
+extern _IO_ssize_t getdelim __P ((char **__restrict __lineptr,
+                                 size_t *__restrict __n, int __delimiter,
+                                 FILE *__restrict __stream));
 
 /* Like `getdelim', but reads up to a newline.  */
-extern _IO_ssize_t getline __P ((char **__lineptr, size_t *__n,
-                                FILE *__stream));
+extern _IO_ssize_t getline __P ((char **__restrict __lineptr,
+                                size_t *__restrict __n,
+                                FILE *__restrict __stream));
 #endif
 
 
@@ -584,10 +590,10 @@ extern char *cuserid __P ((char *__s));
 struct obstack;                        /* See <obstack.h>.  */
 
 /* Write formatted output to an obstack.  */
-extern int obstack_printf __P ((struct obstack *__obstack,
-                               __const char *__format, ...));
-extern int obstack_vprintf __P ((struct obstack *__obstack,
-                                __const char *__format,
+extern int obstack_printf __P ((struct obstack *__restrict __obstack,
+                               __const char *__restrict __format, ...));
+extern int obstack_vprintf __P ((struct obstack *__restrict __obstack,
+                                __const char *__restrict __format,
                                 _G_va_list __args));
 #endif /* Use GNU.  */
 
index 18771d7..41cb669 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 95, 96, 97, 98 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
@@ -115,8 +115,8 @@ extern struct lconv *localeconv __P ((void));
    BASE is non-null the appropriate category information in the BASE
    record is replaced.  */
 extern __locale_t __newlocale __P ((int __category_mask,
-                                    __const char *__locale,
-                                    __locale_t __base));
+                                   __const char *__locale,
+                                   __locale_t __base));
 
 /* Return a duplicate of the set of locale in DATASET.  All usage
    counters are increased if necessary.  */
index f7101c1..6acd532 100644 (file)
@@ -73,14 +73,16 @@ extern struct mntent *getmntent __P ((FILE *__stream));
 
 #ifdef __USE_MISC
 /* Reentrant version of the above function.  */
-extern struct mntent *getmntent_r __P ((FILE *__stream,
-                                       struct mntent *__result,
-                                       char *__buffer, int __bufsize));
+extern struct mntent *getmntent_r __P ((FILE *__restrict __stream,
+                                       struct mntent *__restrict __result,
+                                       char *__restrict __buffer,
+                                       int __bufsize));
 #endif
 
 /* Write the mount table entry described by MNT to STREAM.
    Return zero on success, nonzero on failure.  */
-extern int addmntent __P ((FILE *__stream, __const struct mntent *__mnt));
+extern int addmntent __P ((FILE *__restrict __stream,
+                          __const struct mntent *__restrict __mnt));
 
 /* Close a stream opened with `setmntent'.  */
 extern int endmntent __P ((FILE *__stream));
index 5a4102b..32c2a3f 100644 (file)
@@ -58,8 +58,8 @@ enum
   };
 
 /* Do word expansion of WORDS into PWORDEXP.  */
-extern int wordexp __P ((__const char *__words, wordexp_t *__pwordexp,
-                        int __flags));
+extern int wordexp __P ((__const char *__restrict __words,
+                        wordexp_t *__restrict __pwordexp, int __flags));
 
 /* Free the storage allocated by a `wordexp' call.  */
 extern void wordfree __P ((wordexp_t *__wordexp));
index edccfed..e03144f 100644 (file)
--- a/pwd/pwd.h
+++ b/pwd/pwd.h
@@ -81,7 +81,8 @@ extern struct passwd *getpwent __P ((void));
 extern struct passwd *fgetpwent __P ((FILE *__stream));
 
 /* Write the given entry onto the given stream.  */
-extern int putpwent __P ((__const struct passwd *__p, FILE *__f));
+extern int putpwent __P ((__const struct passwd *__restrict __p,
+                         FILE *__restrict __f));
 #endif
 
 /* Search for an entry with a matching user ID.  */
@@ -107,25 +108,29 @@ extern struct passwd *getpwnam __P ((__const char *__name));
    POSIX people would choose.  */
 
 # if defined __USE_SVID || defined __USE_MISC || defined __USE_XOPEN_EXTENDED
-extern int getpwent_r __P ((struct passwd *__resultbuf, char *__buffer,
-                           size_t __buflen, struct passwd **__result));
+extern int getpwent_r __P ((struct passwd *__restrict __resultbuf,
+                           char *__restrict __buffer, size_t __buflen,
+                           struct passwd **__restrict __result));
 # endif
 
-extern int getpwuid_r __P ((__uid_t __uid, struct passwd *__resultbuf,
-                           char *__buffer, size_t __buflen,
-                           struct passwd **__result));
+extern int getpwuid_r __P ((__uid_t __uid,
+                           struct passwd *__restrict __resultbuf,
+                           char *__restrict __buffer, size_t __buflen,
+                           struct passwd **__restrict __result));
 
-extern int getpwnam_r __P ((__const char *__name, struct passwd *__resultbuf,
-                           char *__buffer, size_t __buflen,
-                           struct passwd **__result));
+extern int getpwnam_r __P ((__const char *__restrict __name,
+                           struct passwd *__restrict __resultbuf,
+                           char *__restrict __buffer, size_t __buflen,
+                           struct passwd **__restrict __result));
 
 
 # ifdef        __USE_SVID
 /* Read an entry from STREAM.  This function is not standardized and
    probably never will.  */
-extern int fgetpwent_r __P ((FILE * __stream, struct passwd *__resultbuf,
-                            char *__buffer, size_t __buflen,
-                            struct passwd **__result));
+extern int fgetpwent_r __P ((FILE *__restrict __stream,
+                            struct passwd *__restrict __resultbuf,
+                            char *__restrict __buffer, size_t __buflen,
+                            struct passwd **__restrict __result));
 # endif
 
 #endif /* POSIX or reentrant */
index 3365e5e..30ef1c8 100644 (file)
@@ -130,39 +130,49 @@ extern struct hostent *gethostbyname2 __P ((__const char *__name, int __af));
    argument is a pointer to a variable which gets the value which
    would be stored in the global variable `herrno' by the
    non-reentrant functions.  */
-extern int __gethostent_r __P ((struct hostent *__result_buf, char *__buf,
-                               size_t __buflen, struct hostent **__result,
-                               int *__h_errnop));
-extern int gethostent_r __P ((struct hostent *__result_buf, char *__buf,
-                             size_t __buflen, struct hostent **__result,
-                             int *__h_errnop));
-
-extern int __gethostbyaddr_r __P ((__const char *__addr, int __len, int __type,
-                                  struct hostent *__result_buf, char *__buf,
-                                  size_t __buflen, struct hostent **__result,
-                                  int *__h_errnop));
-extern int gethostbyaddr_r __P ((__const char *__addr, int __len, int __type,
-                                struct hostent *__result_buf, char *__buf,
-                                size_t __buflen, struct hostent **__result,
-                                int *__h_errnop));
-
-extern int __gethostbyname_r __P ((__const char *__name,
-                                  struct hostent *__result_buf, char *__buf,
-                                  size_t __buflen, struct hostent **__result,
-                                  int *__h_errnop));
-extern int gethostbyname_r __P ((__const char *__name,
-                                struct hostent *__result_buf, char *__buf,
-                                size_t __buflen, struct hostent **__result,
-                                int *__h_errnop));
-
-extern int __gethostbyname2_r __P ((__const char *__name, int __af,
-                                   struct hostent *__result_buf, char *__buf,
-                                   size_t __buflen, struct hostent **__result,
-                                   int *__h_errnop));
-extern int gethostbyname2_r __P ((__const char *__name, int __af,
-                                 struct hostent *__result_buf, char *__buf,
-                                 size_t __buflen, struct hostent **__result,
-                                 int *__h_errnop));
+extern int __gethostent_r __P ((struct hostent *__restrict __result_buf,
+                               char *__restrict __buf, size_t __buflen,
+                               struct hostent **__restrict __result,
+                               int *__restrict __h_errnop));
+extern int gethostent_r __P ((struct hostent *__restrict __result_buf,
+                             char *__restrict __buf, size_t __buflen,
+                             struct hostent **__restrict __result,
+                             int *__restrict __h_errnop));
+
+extern int __gethostbyaddr_r __P ((__const char *__restrict __addr,
+                                  int __len, int __type,
+                                  struct hostent *__restrict __result_buf,
+                                  char *__restrict __buf, size_t __buflen,
+                                  struct hostent **__restrict __result,
+                                  int *__restrict __h_errnop));
+extern int gethostbyaddr_r __P ((__const char *__restrict __addr, int __len,
+                                int __type,
+                                struct hostent *__restrict __result_buf,
+                                char *__restrict __buf, size_t __buflen,
+                                struct hostent **__restrict __result,
+                                int *__restrict __h_errnop));
+
+extern int __gethostbyname_r __P ((__const char *__restrict __name,
+                                  struct hostent *__restrict __result_buf,
+                                  char *__restrict __buf, size_t __buflen,
+                                  struct hostent **__restrict __result,
+                                  int *__restrict __h_errnop));
+extern int gethostbyname_r __P ((__const char *__restrict __name,
+                                struct hostent *__restrict __result_buf,
+                                char *__restrict __buf, size_t __buflen,
+                                struct hostent **__restrict __result,
+                                int *__restrict __h_errnop));
+
+extern int __gethostbyname2_r __P ((__const char *__restrict __name, int __af,
+                                   struct hostent *__restrict __result_buf,
+                                   char *__restrict __buf, size_t __buflen,
+                                   struct hostent **__restrict __result,
+                                   int *__restrict __h_errnop));
+extern int gethostbyname2_r __P ((__const char *__restrict __name, int __af,
+                                 struct hostent *__restrict __result_buf,
+                                 char *__restrict __buf, size_t __buflen,
+                                 struct hostent **__restrict __result,
+                                 int *__restrict __h_errnop));
 #endif /* misc */
 
 
@@ -215,30 +225,36 @@ extern struct netent *getnetbyname __P ((__const char *__name));
    argument is a pointer to a variable which gets the value which
    would be stored in the global variable `herrno' by the
    non-reentrant functions.  */
-extern int __getnetent_r __P ((struct netent *__result_buf, char *__buf,
-                              size_t __buflen, struct netent **__result,
-                              int *__h_errnop));
-extern int getnetent_r __P ((struct netent *__result_buf, char *__buf,
-                            size_t __buflen, struct netent **__result,
-                            int *__h_errnop));
+extern int __getnetent_r __P ((struct netent *__restrict __result_buf,
+                              char *__restrict __buf, size_t __buflen,
+                              struct netent **__restrict __result,
+                              int *__restrict __h_errnop));
+extern int getnetent_r __P ((struct netent *__restrict __result_buf,
+                            char *__restrict __buf, size_t __buflen,
+                            struct netent **__restrict __result,
+                            int *__restrict __h_errnop));
 
 extern int __getnetbyaddr_r __P ((unsigned long int __net, int __type,
-                                 struct netent *__result_buf, char *__buf,
-                                 size_t __buflen, struct netent **__result,
-                                 int *__h_errnop));
+                                 struct netent *__restrict __result_buf,
+                                 char *__restrict __buf, size_t __buflen,
+                                 struct netent **__restrict __result,
+                                 int *__restrict __h_errnop));
 extern int getnetbyaddr_r __P ((unsigned long int __net, int __type,
-                               struct netent *__result_buf, char *__buf,
-                               size_t __buflen, struct netent **__result,
-                               int *__h_errnop));
-
-extern int __getnetbyname_r __P ((__const char *__name,
-                                 struct netent *__result_buf, char *__buf,
-                                 size_t __buflen, struct netent **__result,
-                                 int *__h_errnop));
-extern int getnetbyname_r __P ((__const char *__name,
-                               struct netent *__result_buf, char *__buf,
-                               size_t __buflen, struct netent **__result,
-                               int *__h_errnop));
+                               struct netent *__restrict __result_buf,
+                               char *__restrict __buf, size_t __buflen,
+                               struct netent **__restrict __result,
+                               int *__restrict __h_errnop));
+
+extern int __getnetbyname_r __P ((__const char *__restrict __name,
+                                 struct netent *__restrict __result_buf,
+                                 char *__restrict __buf, size_t __buflen,
+                                 struct netent **__restrict __result,
+                                 int *__restrict __h_errnop));
+extern int getnetbyname_r __P ((__const char *__restrict __name,
+                               struct netent *__restrict __result_buf,
+                               char *__restrict __buf, size_t __buflen,
+                               struct netent **__restrict __result,
+                               int *__restrict __h_errnop));
 #endif /* misc */
 
 
@@ -275,26 +291,33 @@ extern struct servent *getservbyport __P ((int __port, __const char *__proto));
 #ifdef __USE_MISC
 /* Reentrant versions of the functions above.  The additional
    arguments specify a buffer of BUFLEN starting at BUF.  */
-extern int __getservent_r __P ((struct servent *__result_buf, char *__buf,
-                               size_t __buflen, struct servent **__result));
-extern int getservent_r __P ((struct servent *__result_buf, char *__buf,
-                             size_t __buflen, struct servent **__result));
-
-extern int __getservbyname_r __P ((__const char *__name, __const char *__proto,
-                                  struct servent *__result_buf, char *__buf,
-                                  size_t __buflen,
-                                  struct servent **__result));
-extern int getservbyname_r __P ((__const char *__name, __const char *__proto,
-                                struct servent *__result_buf, char *__buf,
-                                size_t __buflen, struct servent **__result));
-
-extern int __getservbyport_r __P ((int __port, __const char *__proto,
-                                  struct servent *__result_buf, char *__buf,
-                                  size_t __buflen,
-                                  struct servent **__result));
-extern int getservbyport_r __P ((int __port, __const char *__proto,
-                                struct servent *__result_buf, char *__buf,
-                                size_t __buflen, struct servent **__result));
+extern int __getservent_r __P ((struct servent *__restrict __result_buf,
+                               char *__restrict __buf, size_t __buflen,
+                               struct servent **__restrict __result));
+extern int getservent_r __P ((struct servent *__restrict __result_buf,
+                             char *__restrict __buf, size_t __buflen,
+                             struct servent **__restrict __result));
+
+extern int __getservbyname_r __P ((__const char *__restrict __name,
+                                  __const char *__restrict __proto,
+                                  struct servent *__restrict __result_buf,
+                                  char *__restrict __buf, size_t __buflen,
+                                  struct servent **__restrict __result));
+extern int getservbyname_r __P ((__const char *__restrict __name,
+                                __const char *__restrict __proto,
+                                struct servent *__restrict __result_buf,
+                                char *__restrict __buf, size_t __buflen,
+                                struct servent **__restrict __result));
+
+extern int __getservbyport_r __P ((int __port,
+                                  __const char *__restrict __proto,
+                                  struct servent *__restrict __result_buf,
+                                  char *__restrict __buf, size_t __buflen,
+                                  struct servent **__restrict __result));
+extern int getservbyport_r __P ((int __port, __const char *__restrict __proto,
+                                struct servent *__restrict __result_buf,
+                                char *__restrict __buf, size_t __buflen,
+                                struct servent **__restrict __result));
 #endif /* misc */
 
 
@@ -327,26 +350,30 @@ extern struct protoent *getprotobynumber __P ((int __proto));
 #ifdef __USE_MISC
 /* Reentrant versions of the functions above.  The additional
    arguments specify a buffer of BUFLEN starting at BUF.  */
-extern int __getprotoent_r __P ((struct protoent *__result_buf, char *__buf,
-                                size_t __buflen, struct protoent **__result));
-extern int getprotoent_r __P ((struct protoent *__result_buf, char *__buf,
-                              size_t __buflen, struct protoent **__result));
-
-extern int __getprotobyname_r __P ((__const char *__name,
-                                   struct protoent *__result_buf, char *__buf,
-                                   size_t __buflen,
-                                   struct protoent **__result));
-extern int getprotobyname_r __P ((__const char *__name,
-                                 struct protoent *__result_buf, char *__buf,
-                                 size_t __buflen,
-                                 struct protoent **__result));
-
-extern int __getprotobynumber_r __P ((int __proto, struct protoent *__res_buf,
-                                     char *__buf, size_t __buflen,
-                                     struct protoent **__result));
-extern int getprotobynumber_r __P ((int __proto, struct protoent *__result_buf,
-                                   char *__buf, size_t __buflen,
-                                   struct protoent **__result));
+extern int __getprotoent_r __P ((struct protoent *__restrict __result_buf,
+                                char *__restrict __buf, size_t __buflen,
+                                struct protoent **__restrict __result));
+extern int getprotoent_r __P ((struct protoent *__restrict __result_buf,
+                              char *__restrict __buf, size_t __buflen,
+                              struct protoent **__restrict __result));
+
+extern int __getprotobyname_r __P ((__const char *__restrict __name,
+                                   struct protoent *__restrict __result_buf,
+                                   char *__restrict __buf, size_t __buflen,
+                                   struct protoent **__restrict __result));
+extern int getprotobyname_r __P ((__const char *__restrict __name,
+                                 struct protoent *__restrict __result_buf,
+                                 char *__restrict __buf, size_t __buflen,
+                                 struct protoent **__restrict __result));
+
+extern int __getprotobynumber_r __P ((int __proto,
+                                     struct protoent *__restrict __res_buf,
+                                     char *__restrict __buf, size_t __buflen,
+                                     struct protoent **__restrict __result));
+extern int getprotobynumber_r __P ((int __proto,
+                                   struct protoent *__restrict __result_buf,
+                                   char *__restrict __buf, size_t __buflen,
+                                   struct protoent **__restrict __result));
 #endif /* misc */
 
 
@@ -358,8 +385,9 @@ extern void endnetgrent __P ((void));
 
 /* Get next member of netgroup established by last `setnetgrent' call
    and return pointers to elements in HOSTP, USERP, and DOMAINP.  */
-extern int getnetgrent __P ((char **__hostp, char **__userp,
-                            char **__domainp));
+extern int getnetgrent __P ((char **__restrict __hostp,
+                            char **__restrict __userp,
+                            char **__restrict __domainp));
 
 /* Test whether NETGROUP contains the triple (HOST,USER,DOMAIN).  */
 extern int innetgr __P ((__const char *__netgroup, __const char *__host,
@@ -367,12 +395,14 @@ extern int innetgr __P ((__const char *__netgroup, __const char *__host,
 
 #ifdef __USE_MISC
 /* Reentrant version of `getnetgrent' where result is placed in BUFFER.  */
-extern int __getnetgrent_r __P ((char **__hostp, char **__userp,
-                                char **__domainp,
-                                char *__buffer, size_t __buflen));
-extern int getnetgrent_r __P ((char **__hostp, char **__userp,
-                              char **__domainp,
-                              char *__buffer, size_t __buflen));
+extern int __getnetgrent_r __P ((char **__restrict __hostp,
+                                char **__restrict __userp,
+                                char **__restrict __domainp,
+                                char *__restrict __buffer, size_t __buflen));
+extern int getnetgrent_r __P ((char **__restrict __hostp,
+                              char **__restrict __userp,
+                              char **__restrict __domainp,
+                              char *__restrict __buffer, size_t __buflen));
 #endif /* misc */
 
 
@@ -383,18 +413,21 @@ extern int getnetgrent_r __P ((char **__hostp, char **__userp,
    connection is returned.  The caller must have the right to use a
    reserved port.  When the function returns *AHOST contains the
    official host name.  */
-extern int rcmd __P ((char **__ahost, unsigned short int __rport,
-                     __const char *__locuser, __const char *__remuser,
-                     __const char *__cmd, int *__fd2p));
+extern int rcmd __P ((char **__restrict __ahost, unsigned short int __rport,
+                     __const char *__restrict __locuser,
+                     __const char *__restrict __remuser,
+                     __const char *__restrict __cmd, int *__restrict __fd2p));
 
 /* Call `rexecd' at port RPORT on remote machine *AHOST to execute
    CMD.  The process runs at the remote machine using the ID of user
    NAME whose cleartext password is PASSWD.  In *FD2P the descriptor
    to the socket for the connection is returned.  When the function
    returns *AHOST contains the official host name.  */
-extern int rexec __P ((char **__ahost, int __rport, __const char *__name,
-                      __const char *__pass, __const char *__cmd,
-                      int *__fd2p));
+extern int rexec __P ((char **__restrict __ahost, int __rport,
+                      __const char *__restrict __name,
+                      __const char *__restrict __pass,
+                      __const char *__restrict __cmd,
+                      int *__restrict __fd2p));
 
 /* Check whether user REMUSER on system RHOST is allowed to login as LOCUSER.
    If SUSER is not zero the user tries to become superuser.  Return 0 if
@@ -453,9 +486,10 @@ struct addrinfo
 
 /* Translate name of a service location and/or a service name to set of
    socket addresses.  */
-extern int getaddrinfo __P ((__const char *__name, __const char *__service,
-                            __const struct addrinfo *__req,
-                            struct addrinfo **__pai));
+extern int getaddrinfo __P ((__const char *__restrict __name,
+                            __const char *__restrict __service,
+                            __const struct addrinfo *__restrict __req,
+                            struct addrinfo **__restrict __pai));
 
 /* Free `addrinfo' structure AI including associated storage.  */
 extern void freeaddrinfo __P ((struct addrinfo *__ai));
@@ -464,9 +498,10 @@ extern void freeaddrinfo __P ((struct addrinfo *__ai));
 extern char *gai_strerror __P  ((int __ecode));
 
 /* Translate a socket address to a location and service name.  */
-extern int getnameinfo __P ((__const struct sockaddr *__sa, socklen_t __salen,
-                            char *__host, size_t __hostlen,
-                            char *__serv, size_t __servlen,
+extern int getnameinfo __P ((__const struct sockaddr *__restrict __sa,
+                            socklen_t __salen,
+                            char *__restrict __host, size_t __hostlen,
+                            char *__restrict __serv, size_t __servlen,
                             int __flags));
 
 #endif /* POSIX */
index 51effcc..cbfbe66 100644 (file)
--- a/rt/aio.h
+++ b/rt/aio.h
@@ -143,8 +143,9 @@ extern int aio_read __P ((struct aiocb *__aiocbp));
 extern int aio_write __P ((struct aiocb *__aiocbp));
 
 /* Initiate list of I/O requests.  */
-extern int lio_listio __P ((int __mode, struct aiocb *__const __list[],
-                           int __nent, struct sigevent *__sig));
+extern int lio_listio __P ((int __mode,
+                           struct aiocb *__const __list[],
+                           int __nent, struct sigevent *__restrict __sig));
 
 /* Retrieve error status associated with AIOCBP.  */
 extern int aio_error __P ((__const struct aiocb *__aiocbp));
@@ -158,7 +159,8 @@ extern int aio_cancel __P ((int __fildes, struct aiocb *__aiocbp));
 /* Suspend calling thread until at least one of the asynchronous I/O
    operations referenced by LIST has completed.  */
 extern int aio_suspend __P ((__const struct aiocb *__const __list[],
-                            int __nent, __const struct timespec *__timeout));
+                            int __nent,
+                            __const struct timespec *__restrict __timeout));
 
 /* Force all operations associated with file desriptor described by
    `aio_fildes' member of AIOCBP.  */
@@ -168,9 +170,10 @@ extern int aio_fsync __P ((int __operation, struct aiocb *__aiocbp));
 extern int __REDIRECT (aio_read, __P ((struct aiocb *__aiocbp)), aio_read64);
 extern int __REDIRECT (aio_write, __P ((struct aiocb *__aiocbp)), aio_write64);
 
-extern int __REDIRECT (lio_listio, __P ((int __mode,
-                                        struct aiocb *__const __list[],
-                                        int __nent, struct sigevent *__sig)),
+extern int __REDIRECT (lio_listio,
+                      __P ((int __mode,
+                            struct aiocb *__const __restrict __list[],
+                            int __nent, struct sigevent *__restrict __sig)),
                       lio_listio64);
 
 extern int __REDIRECT (aio_error, __P ((__const struct aiocb *__aiocbp)),
@@ -183,8 +186,9 @@ extern int __REDIRECT (aio_cancel, __P ((int __fildes,
                       aio_cancel64);
 
 extern int __REDIRECT (aio_suspend,
-                      __P ((__const struct aiocb *__const __list[],
-                            int __nent, __const struct timespec *__timeout)),
+                      __P ((__const struct aiocb *__const __restrict __list[],
+                            int __nent,
+                            __const struct timespec *__restrict __timeout)),
                       aio_suspend64);
 
 extern int __REDIRECT (aio_fsync __P ((int __operation,
@@ -207,8 +211,9 @@ extern int __REDIRECT (aio_fsync __P ((int __operation,
 extern int aio_read64 __P ((struct aiocb64 *__aiocbp));
 extern int aio_write64 __P ((struct aiocb64 *__aiocbp));
 
-extern int lio_listio64 __P ((int __mode, struct aiocb64 *__const __list[],
-                             int __nent, struct sigevent *__sig));
+extern int lio_listio64 __P ((int __mode,
+                             struct aiocb64 *__const __list[], int __nent,
+                             struct sigevent *__restrict __sig));
 
 extern int aio_error64 __P ((__const struct aiocb64 *__aiocbp));
 extern __ssize_t aio_return64 __P ((struct aiocb64 *__aiocbp));
@@ -217,7 +222,7 @@ extern int aio_cancel64 __P ((int __fildes, struct aiocb64 *__aiocbp));
 
 extern int aio_suspend64 __P ((__const struct aiocb64 *__const __list[],
                               int __nent,
-                              __const struct timespec *__timeout));
+                              __const struct timespec *__restrict __timeout));
 
 extern int aio_fsync64 __P ((int __operation, struct aiocb64 *__aiocbp));
 #endif
index 852027c..18b2f4a 100644 (file)
@@ -91,9 +91,9 @@ extern int register_printf_function __P ((int __spec, printf_function __func,
    array it is passed with the types of the arguments it wants, and return
    the number of arguments it wants.  */
 
-extern size_t parse_printf_format __P ((__const char *__fmt,
+extern size_t parse_printf_format __P ((__const char *__restrict __fmt,
                                        size_t __n,
-                                       int *__argtypes));
+                                       int *__restrict __argtypes));
 
 
 /* Codes returned by `parse_printf_format' for basic types.
@@ -130,12 +130,14 @@ enum
    of magnitude used for numbers ('k' for kilo, 'm' for mega etc).  If
    the format specifier is a uppercase character powers of 1000 are
    used.  Otherwise powers of 1024.  */
-extern int printf_size __P ((FILE *__fp, __const struct printf_info *__info,
-                            __const void *__const *args));
+extern int printf_size __P ((FILE *__restrict __fp,
+                            __const struct printf_info *__info,
+                            __const void *__const *__restrict __args));
 
 /* This is the appropriate argument information function for `printf_size'.  */
-extern int printf_size_info __P ((__const struct printf_info *__info,
-                                 size_t __n, int *__argtypes));
+extern int printf_size_info __P ((__const struct printf_info *__restrict
+                                 __info, size_t __n,
+                                 int *__restrict __argtypes));
 
 
 __END_DECLS
index aa9aa63..d0dcaad 100644 (file)
@@ -1,5 +1,5 @@
 /* Header file for monetary value formatting functions.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 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
 __BEGIN_DECLS
 
 /* Formatting a monetary value according to the current locale.  */
-extern ssize_t strfmon __P ((char *__s, size_t __maxsize,
-                            __const char *__format, ...));
+extern ssize_t strfmon __P ((char *__restrict __s, size_t __maxsize,
+                            __const char *__restrict __format, ...));
 
 #ifdef __USE_GNU
 # include <xlocale.h>
 
 /* Formatting a monetary value according to the current locale.  */
-extern ssize_t __strfmon_l __P ((char *__s, size_t __maxsize, __locale_t loc,
-                                __const char *__format, ...));
+extern ssize_t __strfmon_l __P ((char *__restrict __s, size_t __maxsize,
+                                __locale_t loc,
+                                __const char *__restrict __format, ...));
 #endif
 
 __END_DECLS
index 0b41209..355c649 100644 (file)
@@ -372,14 +372,18 @@ struct random_data
     int32_t *end_ptr;          /* Pointer behind state table.  */
   };
 
-extern int random_r __P ((struct random_data *__buf, int32_t *__result));
+extern int random_r __P ((struct random_data *__restrict __buf,
+                         int32_t *__restrict __result));
 
 extern int srandom_r __P ((unsigned int __seed, struct random_data *__buf));
 
-extern int initstate_r __P ((unsigned int __seed, __ptr_t __statebuf,
-                            size_t __statelen, struct random_data *__buf));
+extern int initstate_r __P ((unsigned int __seed,
+                            __ptr_t __restrict __statebuf,
+                            size_t __statelen,
+                            struct random_data *__restrict __buf));
 
-extern int setstate_r __P ((__ptr_t __statebuf, struct random_data *__buf));
+extern int setstate_r __P ((__ptr_t __restrict __statebuf,
+                           struct random_data *__restrict __buf));
 # endif        /* Use misc.  */
 #endif /* Use SVID || extended X/Open.  */
 
@@ -427,19 +431,25 @@ struct drand48_data
 
 # ifdef __USE_MISC
 /* Return non-negative, double-precision floating-point value in [0.0,1.0).  */
-extern int drand48_r __P ((struct drand48_data *__buffer, double *__result));
+extern int drand48_r __P ((struct drand48_data *__restrict __buffer,
+                          double *__restrict __result));
 extern int erand48_r __P ((unsigned short int __xsubi[3],
-                          struct drand48_data *__buffer, double *__result));
+                          struct drand48_data *__restrict __buffer,
+                          double *__restrict __result));
 
 /* Return non-negative, long integer in [0,2^31).  */
-extern int lrand48_r __P ((struct drand48_data *__buffer, long int *__result));
+extern int lrand48_r __P ((struct drand48_data *__restrict __buffer,
+                          long int *__restrict __result));
 extern int nrand48_r __P ((unsigned short int __xsubi[3],
-                          struct drand48_data *__buffer, long int *__result));
+                          struct drand48_data *__restrict __buffer,
+                          long int *__restrict __result));
 
 /* Return signed, long integers in [-2^31,2^31).  */
-extern int mrand48_r __P ((struct drand48_data *__buffer, long int *__result));
+extern int mrand48_r __P ((struct drand48_data *__restrict __buffer,
+                          long int *__restrict __result));
 extern int jrand48_r __P ((unsigned short int __xsubi[3],
-                          struct drand48_data *__buffer, long int *__result));
+                          struct drand48_data *__restrict __buffer,
+                          long int *__restrict __result));
 
 /* Seed random number generator.  */
 extern int srand48_r __P ((long int __seedval, struct drand48_data *__buffer));
@@ -572,7 +582,8 @@ extern char *canonicalize_file_name __P ((__const char *__name));
    name is PATH_MAX chars or more, returns null with `errno' set to
    ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars, returns the
    name in RESOLVED.  */
-extern char *realpath __P ((__const char *__name, char *__resolved));
+extern char *realpath __P ((__const char *__restrict __name,
+                           char *__restrict __resolved));
 #endif
 
 
@@ -627,14 +638,14 @@ __extension__ extern lldiv_t lldiv __P ((long long int __numer,
 /* Convert VALUE to a string with NDIGIT digits and return a pointer to
    this.  Set *DECPT with the position of the decimal character and *SIGN
    with the sign of the number.  */
-extern char *ecvt __P ((double __value, int __ndigit, int *__decpt,
-                       int *__sign));
+extern char *ecvt __P ((double __value, int __ndigit, int *__restrict __decpt,
+                       int *__restrict __sign));
 
 /* Convert VALUE to a string rounded to NDIGIT decimal digits.  Set *DECPT
    with the position of the decimal character and *SIGN with the sign of
    the number.  */
-extern char *fcvt __P ((double __value, int __ndigit, int *__decpt,
-                       int *__sign));
+extern char *fcvt __P ((double __value, int __ndigit, int *__restrict __decpt,
+                       int *__restrict __sign));
 
 /* If possible convert VALUE to a string with NDIGIT significant digits.
    Otherwise use exponential representation.  The resulting string will
@@ -642,25 +653,29 @@ extern char *fcvt __P ((double __value, int __ndigit, int *__decpt,
 extern char *gcvt __P ((double __value, int __ndigit, char *__buf));
 
 /* Long double versions of above functions.  */
-extern char *qecvt __P ((__long_double_t __value, int __ndigit, int *__decpt,
-                        int *__sign));
-extern char *qfcvt __P ((__long_double_t __value, int __ndigit, int *__decpt,
-                        int *__sign));
+extern char *qecvt __P ((__long_double_t __value, int __ndigit,
+                        int *__restrict __decpt, int *__restrict __sign));
+extern char *qfcvt __P ((__long_double_t __value, int __ndigit,
+                        int *__restrict __decpt, int *__restrict __sign));
 extern char *qgcvt __P ((__long_double_t __value, int __ndigit, char *__buf));
 
 
 # ifdef __USE_MISC
 /* Reentrant version of the functions above which provide their own
    buffers.  */
-extern int ecvt_r __P ((double __value, int __ndigit, int *__decpt,
-                       int *__sign, char *__buf, size_t __len));
-extern int fcvt_r __P ((double __value, int __ndigit, int *__decpt,
-                       int *__sign, char *__buf, size_t __len));
-
-extern int qecvt_r __P ((__long_double_t __value, int __ndigit, int *__decpt,
-                        int *__sign, char *__buf, size_t __len));
-extern int qfcvt_r __P ((__long_double_t __value, int __ndigit, int *__decpt,
-                        int *__sign, char *__buf, size_t __len));
+extern int ecvt_r __P ((double __value, int __ndigit, int *__restrict __decpt,
+                       int *__restrict __sign, char *__restrict __buf,
+                       size_t __len));
+extern int fcvt_r __P ((double __value, int __ndigit, int *__restrict __decpt,
+                       int *__restrict __sign, char *__restrict __buf,
+                       size_t __len));
+
+extern int qecvt_r __P ((__long_double_t __value, int __ndigit,
+                        int *__restrict __decpt, int *__restrict __sign,
+                        char *__restrict __buf, size_t __len));
+extern int qfcvt_r __P ((__long_double_t __value, int __ndigit,
+                        int *__restrict __decpt, int *__restrict __sign,
+                        char *__restrict __buf, size_t __len));
 # endif        /* misc */
 #endif /* use MISC || use X/Open Unix */
 
@@ -701,8 +716,9 @@ extern int rpmatch __P ((__const char *__response));
    not part of TOKENS return in *VALUEP beginning of unknown
    suboption.  On exit *OPTIONP is set to the beginning of the next
    token or at the terminating NUL character.  */
-extern int getsubopt __P ((char **__optionp, __const char *__const *__tokens,
-                          char **__valuep));
+extern int getsubopt __P ((char **__restrict __optionp,
+                          __const char *__const *__restrict __tokens,
+                          char **__restrict __valuep));
 #endif
 
 
index 437dba4..4b25cc0 100644 (file)
@@ -40,19 +40,23 @@ __BEGIN_DECLS
 /* Make a '\0' separated arg vector from a unix argv vector, returning it in
    ARGZ, and the total length in LEN.  If a memory allocation error occurs,
    ENOMEM is returned, otherwise 0.  The result can be destroyed using free. */
-extern error_t __argz_create __P ((char *__const __argv[], char **__argz,
-                                  size_t *__len));
-extern error_t argz_create __P ((char *__const __argv[], char **__argz,
-                                size_t *__len));
+extern error_t __argz_create __P ((char *__const __argv[],
+                                  char **__restrict __argz,
+                                  size_t *__restrict __len));
+extern error_t argz_create __P ((char *__const __argv[],
+                                char **__restrict __argz,
+                                size_t *__restrict __len));
 
 /* Make a '\0' separated arg vector from a SEP separated list in
    STRING, returning it in ARGZ, and the total length in LEN.  If a
    memory allocation error occurs, ENOMEM is returned, otherwise 0.
    The result can be destroyed using free.  */
-extern error_t __argz_create_sep __P ((__const char *__string, int __sep,
-                                      char **__argz, size_t *__len));
-extern error_t argz_create_sep __P ((__const char *__string, int __sep,
-                                    char **__argz, size_t *__len));
+extern error_t __argz_create_sep __P ((__const char *__restrict __string,
+                                      int __sep, char **__restrict __argz,
+                                      size_t *__restrict __len));
+extern error_t argz_create_sep __P ((__const char *__restrict __string,
+                                    int __sep, char **__restrict __argz,
+                                    size_t *__restrict __len));
 
 /* Returns the number of strings in ARGZ.  */
 extern size_t __argz_count __P ((__const char *__argz, size_t __len));
@@ -60,10 +64,10 @@ extern size_t argz_count __P ((__const char *__argz, size_t __len));
 
 /* Puts pointers to each string in ARGZ into ARGV, which must be large enough
    to hold them all.  */
-extern void __argz_extract __P ((__const char *__argz, size_t __len,
-                                char **__argv));
-extern void argz_extract __P ((__const char *__argz, size_t __len,
-                              char **__argv));
+extern void __argz_extract __P ((__const char *__restrict __argz, size_t __len,
+                                char **__restrict __argv));
+extern void argz_extract __P ((__const char *__restrict __argz, size_t __len,
+                              char **__restrict __argv));
 
 /* Make '\0' separated arg vector ARGZ printable by converting all the '\0's
    except the last into the character SEP.  */
@@ -71,29 +75,41 @@ extern void __argz_stringify __P ((char *__argz, size_t __len, int __sep));
 extern void argz_stringify __P ((char *__argz, size_t __len, int __sep));
 
 /* Append BUF, of length BUF_LEN to the argz vector in ARGZ & ARGZ_LEN.  */
-extern error_t __argz_append __P ((char **__argz, size_t *__argz_len,
-                                  __const char *__buf, size_t _buf_len));
-extern error_t argz_append __P ((char **__argz, size_t *__argz_len,
-                                __const char *__buf, size_t __buf_len));
+extern error_t __argz_append __P ((char **__restrict __argz,
+                                  size_t *__restrict __argz_len,
+                                  __const char *__restrict __buf,
+                                  size_t _buf_len));
+extern error_t argz_append __P ((char **__restrict __argz,
+                                size_t *__restrict __argz_len,
+                                __const char *__restrict __buf,
+                                size_t __buf_len));
 
 /* Append STR to the argz vector in ARGZ & ARGZ_LEN.  */
-extern error_t __argz_add __P ((char **__argz, size_t *__argz_len,
-                               __const char *__str));
-extern error_t argz_add __P ((char **__argz, size_t *__argz_len,
-                             __const char *__str));
+extern error_t __argz_add __P ((char **__restrict __argz,
+                               size_t *__restrict __argz_len,
+                               __const char *__restrict __str));
+extern error_t argz_add __P ((char **__restrict __argz,
+                             size_t *__restrict __argz_len,
+                             __const char *__restrict __str));
 
 /* Append SEP separated list in STRING to the argz vector in ARGZ &
    ARGZ_LEN.  */
-extern error_t __argz_add_sep __P ((char **__argz, size_t *__argz_len,
-                                   __const char *__string, int __delim));
-extern error_t argz_add_sep __P ((char **__argz, size_t *__argz_len,
-                                 __const char *__string, int __delim));
+extern error_t __argz_add_sep __P ((char **__restrict __argz,
+                                   size_t *__restrict __argz_len,
+                                   __const char *__restrict __string,
+                                   int __delim));
+extern error_t argz_add_sep __P ((char **__restrict __argz,
+                                 size_t *__restrict __argz_len,
+                                 __const char *__restrict __string,
+                                 int __delim));
 
 /* Delete ENTRY from ARGZ & ARGZ_LEN, if it appears there.  */
-extern void __argz_delete __P ((char **__argz, size_t *__argz_len,
-                               char *__entry));
-extern void argz_delete __P ((char **__argz, size_t *__argz_len,
-                             char *__entry));
+extern void __argz_delete __P ((char **__restrict __argz,
+                               size_t *__restrict __argz_len,
+                               char *__restrict __entry));
+extern void argz_delete __P ((char **__restrict __argz,
+                             size_t *__restrict __argz_len,
+                             char *__restrict __entry));
 
 /* Insert ENTRY into ARGZ & ARGZ_LEN before BEFORE, which should be an
    existing entry in ARGZ; if BEFORE is NULL, ENTRY is appended to the end.
@@ -101,20 +117,28 @@ extern void argz_delete __P ((char **__argz, size_t *__argz_len,
    ARGZ, ENTRY) will insert ENTRY at the beginning of ARGZ.  If BEFORE is not
    in ARGZ, EINVAL is returned, else if memory can't be allocated for the new
    ARGZ, ENOMEM is returned, else 0.  */
-extern error_t __argz_insert __P ((char **__argz, size_t *__argz_len,
-                                  char *__before, __const char *__entry));
-extern error_t argz_insert __P ((char **__argz, size_t *__argz_len,
-                                char *__before, __const char *__entry));
+extern error_t __argz_insert __P ((char **__restrict __argz,
+                                  size_t *__restrict __argz_len,
+                                  char *__restrict __before,
+                                  __const char *__restrict __entry));
+extern error_t argz_insert __P ((char **__restrict __argz,
+                                size_t *__restrict __argz_len,
+                                char *__restrict __before,
+                                __const char *__restrict __entry));
 
 /* Replace any occurances of the string STR in ARGZ with WITH, reallocating
    ARGZ as necessary.  If REPLACE_COUNT is non-zero, *REPLACE_COUNT will be
    incremented by number of replacements performed.  */
-extern error_t __argz_replace (char **__argz, size_t *__argz_len,
-                              __const char *__str, __const char *__with,
-                              unsigned *__replace_count);
-extern error_t argz_replace (char **__argz, size_t *__argz_len,
-                            __const char *__str, __const char *__with,
-                            unsigned *__replace_count);
+extern error_t __argz_replace (char **__restrict __argz,
+                              size_t *__restrict __argz_len,
+                              __const char *__restrict __str,
+                              __const char *__restrict __with,
+                              unsigned int *__restrict __replace_count);
+extern error_t argz_replace (char **__restrict __argz,
+                            size_t *__restrict __argz_len,
+                            __const char *__restrict __str,
+                            __const char *__restrict __with,
+                            unsigned int *__restrict __replace_count);
 \f
 /* Returns the next entry in ARGZ & ARGZ_LEN after ENTRY, or NULL if there
    are no more.  If entry is NULL, then the first entry is returned.  This
@@ -130,10 +154,12 @@ extern error_t argz_replace (char **__argz, size_t *__argz_len,
     for (entry = argz; entry; entry = argz_next (argz, argz_len, entry))
       ...;
 */
-extern char *__argz_next __P ((__const char *argz, size_t __argz_len,
-                              __const char *entry));
-extern char *argz_next __P ((__const char *argz, size_t __argz_len,
-                            __const char *entry));
+extern char *__argz_next __P ((__const char *__restrict __argz,
+                              size_t __argz_len,
+                              __const char *__restrict __entry));
+extern char *argz_next __P ((__const char *__restrict __argz,
+                            size_t __argz_len,
+                            __const char *__restrict __entry));
 
 #ifdef __USE_EXTERN_INLINES
 extern inline char *
index adb8c0a..f9a8e69 100644 (file)
 __BEGIN_DECLS
 
 /* Returns a pointer to the entry in ENVZ for NAME, or 0 if there is none.  */
-extern char *envz_entry __P ((__const char *__envz, size_t __envz_len,
-                             __const char *__name));
+extern char *envz_entry __P ((__const char *__restrict __envz,
+                             size_t __envz_len,
+                             __const char *__restrict __name));
 
 /* Returns a pointer to the value portion of the entry in ENVZ for NAME, or 0
    if there is none.  */
-extern char *envz_get __P ((__const char *__envz, size_t __envz_len,
-                           __const char *__name));
+extern char *envz_get __P ((__const char *__restrict __envz, size_t __envz_len,
+                           __const char *__restrict __name));
 
 /* Adds an entry for NAME with value VALUE to ENVZ & ENVZ_LEN.  If an entry
    with the same name already exists in ENVZ, it is removed.  If VALUE is
@@ -45,22 +46,27 @@ extern char *envz_get __P ((__const char *__envz, size_t __envz_len,
    return NULL, although envz_entry will still return an entry; this is handy
    because when merging with another envz, the null entry can override an
    entry in the other one.  Null entries can be removed with envz_strip ().  */
-extern error_t envz_add __P ((char **__envz, size_t *__envz_len,
-                             __const char *__name, __const char *__value));
+extern error_t envz_add __P ((char **__restrict __envz,
+                             size_t *__restrict __envz_len,
+                             __const char *__restrict __name,
+                             __const char *__restrict __value));
 
 /* Adds each entry in ENVZ2 to ENVZ & ENVZ_LEN, as if with envz_add().  If
    OVERRIDE is true, then values in ENVZ2 will supersede those with the same
    name in ENV, otherwise not.  */
-extern error_t envz_merge __P ((char **__envz, size_t *__envz_len,
-                               __const char *__envz2, size_t __envz2_len,
-                               int __override));
+extern error_t envz_merge __P ((char **__restrict __envz,
+                               size_t *__restrict __envz_len,
+                               __const char *__restrict __envz2,
+                               size_t __envz2_len, int __override));
 
 /* Remove the entry for NAME from ENVZ & ENVZ_LEN, if any.  */
-extern void envz_remove __P ((char **__envz, size_t *__envz_len,
-                             __const char *__name));
+extern void envz_remove __P ((char **__restrict __envz,
+                             size_t *__restrict __envz_len,
+                             __const char *__restrict __name));
 
 /* Remove null entries.  */
-extern void envz_strip __P ((char **__envz, size_t *__envz_len));
+extern void envz_strip __P ((char **__restrict __envz,
+                            size_t *__restrict __envz_len));
 
 __END_DECLS
 
index 5ded08f..201cff5 100644 (file)
@@ -167,11 +167,13 @@ extern char *strtok __P ((char *__restrict __s,
 
 /* Divide S into tokens separated by characters in DELIM.  Information
    passed between calls are stored in SAVE_PTR.  */
-extern char *__strtok_r __P ((char *__s, __const char *__delim,
-                             char **__save_ptr));
+extern char *__strtok_r __P ((char *__restrict __s,
+                             __const char *__restrict __delim,
+                             char **__restrict __save_ptr));
 #if defined __USE_POSIX || defined __USE_MISC
-extern char *strtok_r __P ((char *__s, __const char *__delim,
-                           char **__save_ptr));
+extern char *strtok_r __P ((char *__restrict __s,
+                           __const char *__restrict __delim,
+                           char **__restrict __save_ptr));
 #endif
 
 #ifdef __USE_GNU
@@ -268,7 +270,8 @@ extern int __strncasecmp_l __P ((__const char *__s1, __const char *__s2,
 #ifdef __USE_BSD
 /* Return the next DELIM-delimited token from *STRINGP,
    terminating it with a '\0', and update *STRINGP to point past it.  */
-extern char *strsep __P ((char **__stringp, __const char *__delim));
+extern char *strsep __P ((char **__restrict __stringp,
+                         __const char *__restrict __delim));
 #endif
 
 #ifdef __USE_GNU
@@ -279,13 +282,17 @@ extern int strverscmp __P ((__const char *__s1, __const char *__s2));
 extern char *strsignal __P ((int __sig));
 
 /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
-extern char *__stpcpy __P ((char *__dest, __const char *__src));
-extern char *stpcpy __P ((char *__dest, __const char *__src));
+extern char *__stpcpy __P ((char *__restrict __dest,
+                           __const char *__restrict __src));
+extern char *stpcpy __P ((char *__restrict __dest,
+                         __const char *__restrict __src));
 
 /* Copy no more than N characters of SRC to DEST, returning the address of
    the last character written into DEST.  */
-extern char *__stpncpy __P ((char *__dest, __const char *__src, size_t __n));
-extern char *stpncpy __P ((char *__dest, __const char *__src, size_t __n));
+extern char *__stpncpy __P ((char *__restrict __dest,
+                            __const char *__restrict __src, size_t __n));
+extern char *stpncpy __P ((char *__restrict __dest,
+                          __const char *__restrict __src, size_t __n));
 
 /* Sautee STRING briskly.  */
 extern char *strfry __P ((char *__string));
index 3748852..08b1da2 100644 (file)
@@ -214,15 +214,15 @@ extern struct tm *localtime __P ((__const time_t *__timer));
 # if defined __USE_POSIX || defined __USE_MISC
 /* Return the `struct tm' representation of *TIMER in UTC,
    using *TP to store the result.  */
-extern struct tm *__gmtime_r __P ((__const time_t *__timer,
-                                  struct tm *__tp));
-extern struct tm *gmtime_r __P ((__const time_t *__timer,
-                                struct tm *__tp));
+extern struct tm *__gmtime_r __P ((__const time_t *__restrict __timer,
+                                  struct tm *__restrict __tp));
+extern struct tm *gmtime_r __P ((__const time_t *__restrict __timer,
+                                struct tm *__restrict __tp));
 
 /* Return the `struct tm' representation of *TIMER in local time,
    using *TP to store the result.  */
-extern struct tm *localtime_r __P ((__const time_t *__timer,
-                                   struct tm *__tp));
+extern struct tm *localtime_r __P ((__const time_t *__restrict __timer,
+                                   struct tm *__restrict __tp));
 # endif        /* POSIX or misc */
 
 /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
@@ -237,10 +237,12 @@ extern char *ctime __P ((__const time_t *__timer));
 
 /* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
    that is the representation of TP in this format.  */
-extern char *asctime_r __P ((__const struct tm *__tp, char *__buf));
+extern char *asctime_r __P ((__const struct tm *__restrict __tp,
+                            char *__restrict __buf));
 
 /* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'.  */
-extern char *ctime_r __P ((__const time_t *__timer, char *__buf));
+extern char *ctime_r __P ((__const time_t *__restrict __timer,
+                          char *__restrict __buf));
 # endif        /* POSIX or misc */
 
 
@@ -326,7 +328,8 @@ extern struct tm *getdate __P ((__const char *__string));
    variant.  The functionality is the same.  The result is returned in
    the buffer pointed to by RESBUFP and in case of an error the return
    value is != 0 with the same values as given above for `getdate_err'.  */
-extern int getdate_r __P ((__const char *__string, struct tm *__resbufp));
+extern int getdate_r __P ((__const char *__restrict __string,
+                          struct tm *__restrict __resbufp));
 # endif