Add restrict where required by AGd4.
authordrepper <drepper>
Mon, 21 Aug 2000 06:45:11 +0000 (06:45 +0000)
committerdrepper <drepper>
Mon, 21 Aug 2000 06:45:11 +0000 (06:45 +0000)
12 files changed:
posix/glob.h
posix/regex.h
posix/spawn.h
posix/unistd.h
rt/aio.h
signal/signal.h
socket/sys/socket.h
stdlib/ucontext.h
streams/stropts.h
string/string.h
time/sys/time.h
time/time.h

index 7d93b98..5ce4c9a 100644 (file)
@@ -120,8 +120,9 @@ typedef struct
     void (*gl_closedir) __PMT ((void *));
     struct dirent *(*gl_readdir) __PMT ((void *));
     __ptr_t (*gl_opendir) __PMT ((__const char *));
-    int (*gl_lstat) __PMT ((__const char *, struct stat *));
-    int (*gl_stat) __PMT ((__const char *, struct stat *));
+    int (*gl_lstat) __PMT ((__const char *__restrict,
+                           struct stat *__restrict));
+    int (*gl_stat) __PMT ((__const char *__restrict, struct stat *__restrict));
   } glob_t;
 
 #ifdef _LARGEFILE64_SOURCE
@@ -138,8 +139,10 @@ typedef struct
     void (*gl_closedir) __PMT ((void *));
     struct dirent64 *(*gl_readdir) __PMT ((void *));
     __ptr_t (*gl_opendir) __PMT ((__const char *));
-    int (*gl_lstat) __PMT ((__const char *, struct stat64 *));
-    int (*gl_stat) __PMT ((__const char *, struct stat64 *));
+    int (*gl_lstat) __PMT ((__const char *__restrict,
+                           struct stat64 *__restrict));
+    int (*gl_stat) __PMT ((__const char *__restrict,
+                          struct stat64 *__restrict));
   } glob64_t;
 #endif
 
@@ -157,24 +160,24 @@ typedef struct
    If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
    Otherwise, `glob' returns zero.  */
 #if _FILE_OFFSET_BITS != 64 || __GNUC__ < 2
-extern int glob __P ((__const char *__pattern, int __flags,
+extern int glob __P ((__const char *__restrict __pattern, int __flags,
                      int (*__errfunc) (__const char *, int),
-                     glob_t *__pglob));
+                     glob_t *__restrict __pglob));
 
 /* Free storage allocated in PGLOB by a previous `glob' call.  */
 extern void globfree __P ((glob_t *__pglob));
 #else
-extern int glob __P ((__const char *__pattern, int __flags,
+extern int glob __P ((__const char *__restrict __pattern, int __flags,
                      int (*__errfunc) (__const char *, int),
-                     glob_t *__pglob)) __asm__ ("glob64");
+                     glob_t *__restrict __pglob)) __asm__ ("glob64");
 
 extern void globfree __P ((glob_t *__pglob)) __asm__ ("globfree64");
 #endif
 
 #ifdef _LARGEFILE64_SOURCE
-extern int glob64 __P ((__const char *__pattern, int __flags,
+extern int glob64 __P ((__const char *__restrict __pattern, int __flags,
                        int (*__errfunc) (__const char *, int),
-                       glob64_t *__pglob));
+                       glob64_t *__restrict __pglob));
 
 extern void globfree64 __P ((glob64_t *__pglob));
 #endif
index 5edeff3..8576fe6 100644 (file)
@@ -514,12 +514,14 @@ extern int re_exec _RE_ARGS ((const char *));
 #endif
 
 /* POSIX compatibility.  */
-extern int regcomp _RE_ARGS ((regex_t *__preg, const char *__pattern,
+extern int regcomp _RE_ARGS ((regex_t *__restrict __preg,
+                             const char *__restrict __pattern,
                              int __cflags));
 
-extern int regexec _RE_ARGS ((const regex_t *__preg,
-                             const char *__string, size_t __nmatch,
-                             regmatch_t __pmatch[], int __eflags));
+extern int regexec _RE_ARGS ((const regex_t *__restrict __preg,
+                             const char *__restrict __string, size_t __nmatch,
+                             regmatch_t __pmatch[__restrict_arr],
+                             int __eflags));
 
 extern size_t regerror _RE_ARGS ((int __errcode, const regex_t *__preg,
                                  char *__errbuf, size_t __errbuf_size));
index 9487cbd..38bdbd3 100644 (file)
@@ -63,10 +63,13 @@ __BEGIN_DECLS
 
 /* Spawn a new process executing PATH with the attributes describes in *ATTRP.
    Before running the process perform the actions described in FILE-ACTIONS. */
-extern int posix_spawn (pid_t *__pid, __const char *__path,
-                       __const posix_spawn_file_actions_t *__file_actions,
-                       __const posix_spawnattr_t *__attrp,
-                       char *__const argv[], char *__const envp[]) __THROW;
+extern int posix_spawn (pid_t *__restrict __pid,
+                       __const char *__restrict __path,
+                       __const posix_spawn_file_actions_t *__restrict
+                       __file_actions,
+                       __const posix_spawnattr_t *__restrict __attrp,
+                       char *__const argv[__restrict_arr],
+                       char *__const envp[__restrict_arr]) __THROW;
 
 /* Similar to `posix_spawn' but search for FILE in the PATH.  */
 extern int posix_spawnp (pid_t *__pid, __const char *__file,
@@ -83,46 +86,66 @@ extern int posix_spawnattr_destroy (posix_spawnattr_t *__attr) __THROW;
 
 /* Store signal mask for signals with default handling from ATTR in
    SIGDEFAULT.  */
-extern int posix_spawnattr_getsigdefault (__const posix_spawnattr_t *__attr,
-                                         sigset_t *__sigdefault) __THROW;
+extern int posix_spawnattr_getsigdefault (__const posix_spawnattr_t *
+                                         __restrict __attr,
+                                         sigset_t *__restrict __sigdefault)
+     __THROW;
 
 /* Set signal mask for signals with default handling in ATTR to SIGDEFAULT.  */
-extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *__attr,
-                                         __const sigset_t *__sigdefault)
+extern int posix_spawnattr_setsigdefault (posix_spawnattr_t *__restrict __attr,
+                                         __const sigset_t *__restrict
+                                         __sigdefault)
      __THROW;
 
 /* Store signal mask for the new process from ATTR in SIGMASK.  */
-extern int posix_spawnattr_getsigmask (__const posix_spawnattr_t *__attr,
-                                      sigset_t *__sigmask) __THROW;
+extern int posix_spawnattr_getsigmask (__const posix_spawnattr_t *__restrict
+                                      __attr,
+                                      sigset_t *__restrict __sigmask) __THROW;
 
 /* Set signal mask for the new process in ATTR to SIGMASK.  */
-extern int posix_spawnattr_setsigmask (posix_spawnattr_t *__attr,
-                                      __const sigset_t *__sigmask) __THROW;
+extern int posix_spawnattr_setsigmask (posix_spawnattr_t *__restrict __attr,
+                                      __const sigset_t *__restrict __sigmask)
+     __THROW;
 
 /* Get flag word from the attribute structure.  */
-extern int posix_spawnattr_getflags (__const posix_spawnattr_t *__attr,
-                                    short int *__flags) __THROW;
+extern int posix_spawnattr_getflags (__const posix_spawnattr_t *__restrict
+                                    __attr,
+                                    short int *__restrict __flags) __THROW;
 
 /* Store flags in the attribute structure.  */
 extern int posix_spawnattr_setflags (posix_spawnattr_t *_attr,
                                     short int __flags) __THROW;
 
 /* Get process group ID from the attribute structure.  */
-extern int posix_spawnattr_getpgroup (__const posix_spawnattr_t *__attr,
-                                     pid_t *__pgroup) __THROW;
+extern int posix_spawnattr_getpgroup (__const posix_spawnattr_t *__restrict
+                                     __attr, pid_t *__restrict __pgroup)
+     __THROW;
 
 /* Store process group ID in the attribute structure.  */
 extern int posix_spawnattr_setpgroup (posix_spawnattr_t *__attr,
                                      pid_t __pgroup) __THROW;
 
 /* Get scheduling policy from the attribute structure.  */
-extern int posix_spawnattr_getschedpolicy (__const posix_spawnattr_t *__attr,
-                                          int *__schedpolicy) __THROW;
+extern int posix_spawnattr_getschedpolicy (__const posix_spawnattr_t *
+                                          __restrict __attr,
+                                          int *__restrict __schedpolicy)
+     __THROW;
 
 /* Store scheduling policy in the attribute structure.  */
 extern int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
                                           int __schedpolicy) __THROW;
 
+/* Get scheduling parameters from the attribute structure.  */
+extern int posix_spawnattr_getschedparam (__const posix_spawnattr_t *
+                                         __restrict __attr,
+                                         struct sched_param *__restrict
+                                         __schedparam) __THROW;
+
+/* Store scheduling parameters in the attribute structure.  */
+extern int posix_spawnattr_setschedparam (posix_spawnattr_t *__restrict __attr,
+                                         const struct sched_param *
+                                         __restrict __schedparam) __THROW;
+
 
 /* Initialize data structure for file attribute for `spawn' call.  */
 extern int posix_spawn_file_actions_init (posix_spawn_file_actions_t *
@@ -135,8 +158,9 @@ extern int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *
 /* Add an action to FILE-ACTIONS which tells the implementation to call
    `open' for the given file during the `spawn' call.  */
 extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *
-                                            __file_actions,
-                                            int __fd, __const char *__path,
+                                            __restrict __file_actions,
+                                            int __fd,
+                                            __const char *__restrict __path,
                                             int __oflag, mode_t __mode)
      __THROW;
 
index 0df0e93..eebfe88 100644 (file)
@@ -696,7 +696,8 @@ extern int symlink (__const char *__from, __const char *__to) __THROW;
 /* Read the contents of the symbolic link PATH into no more than
    LEN bytes of BUF.  The contents are not null-terminated.
    Returns the number of characters read, or -1 for errors.  */
-extern int readlink (__const char *__path, char *__buf, size_t __len) __THROW;
+extern int readlink (__const char *__restrict __path, char *__restrict __buf,
+                    size_t __len) __THROW;
 #endif /* Use BSD.  */
 
 /* Remove the link NAME.  */
@@ -961,7 +962,8 @@ extern void encrypt (char *__block, int __edflag) __THROW;
    FROM and copy the result to TO.  The value of TO must not be in the
    range [FROM - N + 1, FROM - 1].  If N is odd the first byte in FROM
    is without partner.  */
-extern void swab (__const void *__from, void *__to, ssize_t __n) __THROW;
+extern void swab (__const void *__restrict __from, void *__restrict __to,
+                 ssize_t __n) __THROW;
 #endif
 
 
index 15b16ab..6166208 100644 (file)
--- a/rt/aio.h
+++ b/rt/aio.h
@@ -147,7 +147,8 @@ extern int aio_read (struct aiocb *__aiocbp) __THROW;
 extern int aio_write (struct aiocb *__aiocbp) __THROW;
 
 /* Initiate list of I/O requests.  */
-extern int lio_listio (int __mode, struct aiocb *__const __list[],
+extern int lio_listio (int __mode,
+                      struct aiocb *__const __list[__restrict_arr],
                       int __nent, struct sigevent *__restrict __sig) __THROW;
 
 /* Retrieve error status associated with AIOCBP.  */
@@ -174,7 +175,8 @@ extern int __REDIRECT (aio_write, (struct aiocb *__aiocbp) __THROW,
                       aio_write64);
 
 extern int __REDIRECT (lio_listio,
-                      (int __mode, struct aiocb *__const __list[],
+                      (int __mode,
+                       struct aiocb *__const __list[__restrict_arr],
                        int __nent, struct sigevent *__restrict __sig) __THROW,
                       lio_listio64);
 
@@ -213,7 +215,8 @@ extern int __REDIRECT (aio_fsync,
 extern int aio_read64 (struct aiocb64 *__aiocbp) __THROW;
 extern int aio_write64 (struct aiocb64 *__aiocbp) __THROW;
 
-extern int lio_listio64 (int __mode, struct aiocb64 *__const __list[],
+extern int lio_listio64 (int __mode,
+                        struct aiocb64 *__const __list[__restrict_arr],
                         int __nent, struct sigevent *__restrict __sig)
      __THROW;
 
index 3f6373e..cc422ac 100644 (file)
@@ -232,34 +232,38 @@ extern int sigorset (sigset_t *__set, __const sigset_t *__left,
 # include <bits/sigaction.h>
 
 /* Get and/or change the set of blocked signals.  */
-extern int sigprocmask (int __how, __const sigset_t *__set, sigset_t *__oset)
-     __THROW;
+extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
+                       sigset_t *__restrict __oset) __THROW;
 
 /* Change the set of blocked signals to SET,
    wait until a signal arrives, and restore the set of blocked signals.  */
 extern int sigsuspend (__const sigset_t *__set) __THROW;
 
 /* Get and/or set the action for signal SIG.  */
-extern int __sigaction (int __sig, __const struct sigaction *__act,
-                       struct sigaction *__oact) __THROW;
-extern int sigaction (int __sig, __const struct sigaction *__act,
-                     struct sigaction *__oact) __THROW;
+extern int __sigaction (int __sig, __const struct sigaction *__restrict __act,
+                       struct sigaction *__restrict __oact) __THROW;
+extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
+                     struct sigaction *__restrict __oact) __THROW;
 
 /* Put in SET all signals that are blocked and waiting to be delivered.  */
 extern int sigpending (sigset_t *__set) __THROW;
 
 
 /* Select any of pending signals from SET or wait for any to arrive.  */
-extern int sigwait (__const sigset_t *__set, int *__sig) __THROW;
+extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
+     __THROW;
 
 # ifdef __USE_POSIX199309
 /* Select any of pending signals from SET and place information in INFO.  */
-extern int sigwaitinfo (__const sigset_t *__set, siginfo_t *__info) __THROW;
+extern int sigwaitinfo (__const sigset_t *__restrict __set,
+                       siginfo_t *__restrict __info) __THROW;
 
 /* Select any of pending signals from SET and place information in INFO.
    Wait the imte specified by TIMEOUT if no signal is pending.  */
-extern int sigtimedwait (__const sigset_t *__set, siginfo_t *__info,
-                        __const struct timespec *__timeout) __THROW;
+extern int sigtimedwait (__const sigset_t *__restrict __set,
+                        siginfo_t *__restrict __info,
+                        __const struct timespec *__restrict __timeout)
+     __THROW;
 
 /* Send signal SIG to the process PID.  Associate data in VAL with the
    signal.  */
@@ -329,8 +333,8 @@ extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __THROW;
 
 /* Alternate signal handler stack interface.
    This interface should always be preferred over `sigstack'.  */
-extern int sigaltstack (__const struct sigaltstack *__ss,
-                       struct sigaltstack *__oss) __THROW;
+extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
+                       struct sigaltstack *__restrict __oss) __THROW;
 
 #endif /* use BSD or X/Open Unix.  */
 
index dbb6dab..1655d95 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations of socket constants, types, and functions.
-   Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
+   Copyright (C) 1991,92,94,95,96,97,98,99,2000 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
@@ -62,7 +62,7 @@ enum
    G++ 2.7 does not support transparent unions so there we want the
    old-style declaration, too.  */
 #if defined __cplusplus || !__GNUC_PREREQ (2, 7)
-# define __SOCKADDR_ARG                struct sockaddr *
+# define __SOCKADDR_ARG                struct sockaddr *__restrict
 # define __CONST_SOCKADDR_ARG  __const struct sockaddr *
 #else
 /* Add more `struct sockaddr_AF' types here as necessary.
@@ -82,11 +82,11 @@ enum
   __SOCKADDR_ONETYPE (sockaddr_un) \
   __SOCKADDR_ONETYPE (sockaddr_x25)
 
-# define __SOCKADDR_ONETYPE(type) struct type *__##type##__;
+# define __SOCKADDR_ONETYPE(type) struct type *__restrict __##type##__;
 typedef union { __SOCKADDR_ALLTYPES
              } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
 # undef __SOCKADDR_ONETYPE
-# define __SOCKADDR_ONETYPE(type) __const struct type *__##type##__;
+# define __SOCKADDR_ONETYPE(type) __const struct type *__restrict __##type##__;
 typedef union { __SOCKADDR_ALLTYPES
              } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
 # undef __SOCKADDR_ONETYPE
@@ -110,8 +110,8 @@ extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
      __THROW;
 
 /* Put the local address of FD into *ADDR and its length in *LEN.  */
-extern int getsockname (int __fd, __SOCKADDR_ARG __addr, socklen_t *__len)
-     __THROW;
+extern int getsockname (int __fd, __SOCKADDR_ARG __addr,
+                       socklen_t *__restrict __len) __THROW;
 
 /* Open a connection on socket FD to peer at ADDR (which LEN bytes long).
    For connectionless socket types, just set the default address to send to
@@ -124,8 +124,8 @@ extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
 
 /* Put the address of the peer connected to socket FD into *ADDR
    (which is *LEN bytes long), and its actual length into *LEN.  */
-extern int getpeername (int __fd, __SOCKADDR_ARG __addr, socklen_t *__len)
-     __THROW;
+extern int getpeername (int __fd, __SOCKADDR_ARG __addr,
+                       socklen_t *__restrict __len) __THROW;
 
 
 /* Send N bytes of BUF to socket FD.  Returns the number sent or -1.  */
@@ -149,8 +149,9 @@ extern int sendto (int __fd, __const void *__buf, size_t __n,
    If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of
    the sender, and store the actual size of the address in *ADDR_LEN.
    Returns the number of bytes read or -1 for errors.  */
-extern int recvfrom (int __fd, void *__buf, size_t __n, int __flags,
-                    __SOCKADDR_ARG __addr, socklen_t *__addr_len) __THROW;
+extern int recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
+                    __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len)
+     __THROW;
 
 
 /* Send a message described MESSAGE on socket FD.
@@ -168,7 +169,8 @@ extern int recvmsg (int __fd, struct msghdr *__message, int __flags)
    into OPTVAL (which is *OPTLEN bytes long), and set *OPTLEN to the value's
    actual length.  Returns 0 on success, -1 for errors.  */
 extern int getsockopt (int __fd, int __level, int __optname,
-                      void *__optval, socklen_t *__optlen) __THROW;
+                      void *__restrict __optval,
+                      socklen_t *__restrict __optlen) __THROW;
 
 /* Set socket FD's option OPTNAME at protocol level LEVEL
    to *OPTVAL (which is OPTLEN bytes long).
@@ -187,7 +189,8 @@ extern int listen (int __fd, unsigned int __n) __THROW;
    set *ADDR (which is *ADDR_LEN bytes long) to the address of the connecting
    peer and *ADDR_LEN to the address's actual length, and return the
    new socket's descriptor, or -1 for errors.  */
-extern int accept (int __fd, __SOCKADDR_ARG __addr, socklen_t *__addr_len)
+extern int accept (int __fd, __SOCKADDR_ARG __addr,
+                  socklen_t *__restrict __addr_len)
      __THROW;
 
 /* Shut down all or part of the connection open on socket FD.
index 9e92a61..346a682 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 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
@@ -36,7 +36,8 @@ extern int setcontext (__const ucontext_t *__ucp) __THROW;
 
 /* Save current context in context variable pointed to by OUCP and set
    context from variable pointed to by UCP.  */
-extern int swapcontext (ucontext_t *__oucp, __const ucontext_t *__ucp) __THROW;
+extern int swapcontext (ucontext_t *__restrict __oucp,
+                       __const ucontext_t *__restrict __ucp) __THROW;
 
 /* Manipulate user context UCP to continue with calling functions FUNC
    and the ARGC-1 parameters following ARGC when the context is used
index dda2857..04dc5cd 100644 (file)
@@ -44,13 +44,15 @@ __BEGIN_DECLS
 extern int isastream (int __fildes) __THROW;
 
 /* Receive next message from a STREAMS file.  */
-extern int getmsg (int __fildes, struct strbuf *__ctlptr,
-                  struct strbuf *__dataptr, int *__flagsp) __THROW;
+extern int getmsg (int __fildes, struct strbuf *__restrict __ctlptr,
+                  struct strbuf *__restrict __dataptr,
+                  int *__restrict __flagsp) __THROW;
 
 /* Receive next message from a STREAMS file, with *FLAGSP allowing to
    control which message.  */
-extern int getpmsg (int __fildes, struct strbuf *__ctlptr,
-                   struct strbuf *__dataptr, int *__bandp, int *__flagsp)
+extern int getpmsg (int __fildes, struct strbuf *__restrict __ctlptr,
+                   struct strbuf *__restrict __dataptr,
+                   int *__restrict __bandp, int *__restrict __flagsp)
      __THROW;
 
 /* Perform the I/O control operation specified by REQUEST on FD.
index d4d3e44..1ea0ff5 100644 (file)
@@ -45,7 +45,8 @@ extern void *memmove (void *__dest, __const void *__src, size_t __n)
    Return the position in DEST one byte past where C was copied,
    or NULL if C was not found in the first N bytes of SRC.  */
 #if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN
-extern void *memccpy (void *__dest, __const void *__src, int __c, size_t __n)
+extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
+                     int __c, size_t __n)
      __THROW;
 #endif /* SVID.  */
 
index fe8648e..a753912 100644 (file)
@@ -65,7 +65,8 @@ typedef void *__timezone_ptr_t;
    Returns 0 on success, -1 on errors.
    NOTE: This form of timezone information is obsolete.
    Use the functions and variables declared in <time.h> instead.  */
-extern int gettimeofday (struct timeval *__tv, __timezone_ptr_t __tz) __THROW;
+extern int gettimeofday (struct timeval *__restrict __tv,
+                        __timezone_ptr_t __restrict __tz) __THROW;
 
 /* Set the current time of day and timezone information.
    This call is restricted to the super-user.  */
@@ -120,8 +121,8 @@ extern int getitimer (__itimer_which_t __which,
    set *OLD to the old value of timer WHICH.
    Returns 0 on success, -1 on errors.  */
 extern int setitimer (__itimer_which_t __which,
-                     __const struct itimerval *__new,
-                     struct itimerval *__old) __THROW;
+                     __const struct itimerval *__restrict __new,
+                     struct itimerval *__restrict __old) __THROW;
 
 /* Change the access time of FILE to TVP[0] and
    the modification time of FILE to TVP[1].  */
index 47e4d8c..9178d5f 100644 (file)
@@ -182,7 +182,8 @@ extern size_t strftime (char *__restrict __s, size_t __maxsize,
 # ifdef __USE_XOPEN
 /* Parse S according to FORMAT and store binary time information in TP.
    The return value is a pointer to the first unparsed character in S.  */
-extern char *strptime (__const char *__s, __const char *__fmt, struct tm *__tp)
+extern char *strptime (__const char *__restrict __s,
+                      __const char *__restrict __fmt, struct tm *__tp)
      __THROW;
 # endif
 
@@ -304,16 +305,17 @@ extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
 
 
 /* Create new per-process timer using CLOCK_ID.  */
-extern int timer_create (clockid_t __clock_id, struct sigevent *__evp,
-                        timer_t *__timerid) __THROW;
+extern int timer_create (clockid_t __clock_id,
+                        struct sigevent *__restrict __evp,
+                        timer_t *__restrict __timerid) __THROW;
 
 /* Delete timer TIMERID.  */
 extern int timer_delete (timer_t __timerid) __THROW;
 
 /* Set timer TIMERID to VALUE, returning old value in OVLAUE.  */
 extern int timer_settime (timer_t __timerid, int __flags,
-                         __const struct itimerspec *__value,
-                         struct itimerspec *__ovalue) __THROW;
+                         __const struct itimerspec *__restrict __value,
+                         struct itimerspec *__restrict __ovalue) __THROW;
 
 /* Get current value of timer TIMERID and store it in VLAUE.  */
 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)