* misc/sys/cdefs.h: Define __restrict_arr.
	* include/sys/time.h: Add restrict where required by AGd4.
	* inet/arpa/inet.h: Likewise.
	* io/sys/stat.h: Likewise.
	* io/sys/statvfs.h: Likewise.
	* misc/search.h: Likewise.
	* misc/sys/select.h: Likewise.
	* posix/glob.h: Likewise.
	* posix/regex.h: Likewise.
	* posix/spawn.h: Likewise.
	* posix/unistd.h: Likewise.
	* rt/aio.h: Likewise.
	* signal/signal.h: Likewise.
	* socket/sys/socket.h: Likewise.
	* stdlib/ucontext.h: Likewise.
	* streams/stropts.h: Likewise.
	* string/string.h: Likewise.
	* time/time.h: Likewise.
	* time/sys/time.h: Likewise.

	* posix/spawn.h: Add declarations for posix_spawnattr_getscheparam
	and posix_spawnattr_setscheparam.

	* libio/stdio.h: Make cuserid prototype again available for all
	XPG versions.
This commit is contained in:
Ulrich Drepper 2000-08-21 06:49:52 +00:00
parent 4aebaa6bd9
commit 98cbe360d9
25 changed files with 287 additions and 166 deletions

View File

@ -1,5 +1,31 @@
2000-08-20 Ulrich Drepper <drepper@redhat.com>
* misc/sys/cdefs.h: Define __restrict_arr.
* include/sys/time.h: Add restrict where required by AGd4.
* inet/arpa/inet.h: Likewise.
* io/sys/stat.h: Likewise.
* io/sys/statvfs.h: Likewise.
* misc/search.h: Likewise.
* misc/sys/select.h: Likewise.
* posix/glob.h: Likewise.
* posix/regex.h: Likewise.
* posix/spawn.h: Likewise.
* posix/unistd.h: Likewise.
* rt/aio.h: Likewise.
* signal/signal.h: Likewise.
* socket/sys/socket.h: Likewise.
* stdlib/ucontext.h: Likewise.
* streams/stropts.h: Likewise.
* string/string.h: Likewise.
* time/time.h: Likewise.
* time/sys/time.h: Likewise.
* posix/spawn.h: Add declarations for posix_spawnattr_getscheparam
and posix_spawnattr_setscheparam.
* libio/stdio.h: Make cuserid prototype again available for all
XPG versions.
* argp/argp-help.c: Unify use of function aliases to make more compact
PLT.
* include/libintl.h: Likewise.

View File

@ -11,7 +11,7 @@ extern int __adjtime (__const struct timeval *__delta,
extern int __getitimer (enum __itimer_which __which,
struct itimerval *__value);
extern int __setitimer (enum __itimer_which __which,
__const struct itimerval *__new,
struct itimerval *__old);
__const struct itimerval *__restrict __new,
struct itimerval *__restrict __old);
extern int __utimes (__const char *__file, const struct timeval __tvp[2]);
#endif

View File

@ -51,13 +51,15 @@ extern char *inet_ntoa (struct in_addr __in) __THROW;
/* Convert from presentation format of an Internet number in buffer
starting at CP to the binary network format and store result for
interface type AF in buffer starting at BUF. */
extern int inet_pton (int __af, __const char *__cp, void *__buf) __THROW;
extern int inet_pton (int __af, __const char *__restrict __cp,
void *__restrict __buf) __THROW;
/* Convert a Internet address in binary network format for interface
type AF in buffer starting at CP to presentation form and place
result in buffer of length LEN astarting at BUF. */
extern __const char *inet_ntop (int __af, __const void *__cp,
char *__buf, socklen_t __len) __THROW;
extern __const char *inet_ntop (int __af, __const void *__restrict __cp,
char *__restrict __buf, socklen_t __len)
__THROW;
/* The following functions are not part of XNS 5.2. */

View File

@ -196,7 +196,8 @@ __BEGIN_DECLS
#ifndef __USE_FILE_OFFSET64
/* Get file attributes for FILE and put them in BUF. */
extern int stat (__const char *__file, struct stat *__buf) __THROW;
extern int stat (__const char *__restrict __file,
struct stat *__restrict __buf) __THROW;
/* Get file attributes for the file, device, pipe, or socket
that file descriptor FD is open on and put them in BUF. */
@ -204,7 +205,8 @@ extern int fstat (int __fd, struct stat *__buf) __THROW;
#else
# ifdef __REDIRECT
extern int __REDIRECT (stat,
(__const char *__file, struct stat *__buf) __THROW,
(__const char *__restrict __file,
struct stat *__restrict __buf) __THROW,
stat64);
extern int __REDIRECT (fstat, (int __fd, struct stat *__buf) __THROW, fstat64);
# else
@ -213,7 +215,8 @@ extern int __REDIRECT (fstat, (int __fd, struct stat *__buf) __THROW, fstat64);
# endif
#endif
#ifdef __USE_LARGEFILE64
extern int stat64 (__const char *__file, struct stat64 *__buf) __THROW;
extern int stat64 (__const char *__restrict __file,
struct stat64 *__restrict __buf) __THROW;
extern int fstat64 (int __fd, struct stat64 *__buf) __THROW;
#endif
@ -221,18 +224,21 @@ extern int fstat64 (int __fd, struct stat64 *__buf) __THROW;
# ifndef __USE_FILE_OFFSET64
/* Get file attributes about FILE and put them in BUF.
If FILE is a symbolic link, do not follow it. */
extern int lstat (__const char *__file, struct stat *__buf) __THROW;
extern int lstat (__const char *__restrict __file,
struct stat *__restrict __buf) __THROW;
# else
# ifdef __REDIRECT
extern int __REDIRECT (lstat,
(__const char *__file, struct stat *__buf) __THROW,
(__const char *__restrict __file,
struct stat *__restrict __buf) __THROW,
lstat64);
# else
# define lstat lstat64
# endif
# endif
# ifdef __USE_LARGEFILE64
extern int lstat64 (__const char *__file, struct stat64 *__buf) __THROW;
extern int lstat64 (__const char *__restrict __file,
struct stat64 *__restrict __buf) __THROW;
# endif
#endif

View File

@ -49,18 +49,21 @@ __BEGIN_DECLS
/* Return information about the filesystem on which FILE resides. */
#ifndef __USE_FILE_OFFSET64
extern int statvfs (__const char *__file, struct statvfs *__buf) __THROW;
extern int statvfs (__const char *__restrict __file,
struct statvfs *__restrict __buf) __THROW;
#else
# ifdef __REDIRECT
extern int __REDIRECT (statvfs,
(__const char *__file, struct statvfs *__buf) __THROW,
(__const char *__restrict __file,
struct statvfs *__restrict __buf) __THROW,
statvfs64);
# else
# define statvfs statvfs64
# endif
#endif
#ifdef __USE_LARGEFILE64
extern int statvfs64 (__const char *__file, struct statvfs64 *__buf) __THROW;
extern int statvfs64 (__const char *__restrict __file,
struct statvfs64 *__restrict __buf) __THROW;
#endif
/* Return information about the filesystem containing the file FILDES

View File

@ -581,7 +581,7 @@ extern char *ctermid (char *__s) __THROW;
#endif /* Use POSIX. */
#if defined __USE_XOPEN && !defined __USE_XOPEN2K
#ifdef __USE_XOPEN
/* Return the name of the current user. */
extern char *cuserid (char *__s) __THROW;
#endif /* Use X/Open, but not issue 6. */

View File

@ -1,3 +1,9 @@
2000-08-20 Ulrich Drepper <drepper@redhat.com>
* semaphore.h: Add restrict where required by AGd4.
* sysdeps/pthread/pthread.h: Likewise.
* sysdeps/pthread/unix/sysv/linux/bits/sigthread.h: Likewise.
2000-08-15 Ulrich Drepper <drepper@redhat.com>
* Makefile (tests): Add ex12. Add rule to build it.

View File

@ -72,7 +72,8 @@ extern int sem_wait (sem_t *__sem) __THROW;
#ifdef __USE_XOPEN2K
/* Similar to `sem_wait' but wait only until ABSTIME. */
extern int sem_timedwait (sem_t *__sem, __const struct timespec *__abstime)
extern int sem_timedwait (sem_t *__restrict __sem,
__const struct timespec *__restrict __abstime)
__THROW;
#endif
@ -83,7 +84,8 @@ extern int sem_trywait (sem_t *__sem) __THROW;
extern int sem_post (sem_t *__sem) __THROW;
/* Get current value of SEM and store it in *SVAL. */
extern int sem_getvalue (sem_t *__sem, int *__sval) __THROW;
extern int sem_getvalue (sem_t *__restrict __sem, int *__restrict __sval)
__THROW;
__END_DECLS

View File

@ -155,10 +155,10 @@ enum
/* Create a thread with given attributes ATTR (or default attributes
if ATTR is NULL), and call function START_ROUTINE with given
arguments ARG. */
extern int pthread_create (pthread_t *__thread,
__const pthread_attr_t *__attr,
extern int pthread_create (pthread_t *__restrict __thread,
__const pthread_attr_t *__restrict __attr,
void *(*__start_routine) (void *),
void *__arg) __THROW;
void *__restrict __arg) __THROW;
/* Obtain the identifier of the current thread. */
extern pthread_t pthread_self (void) __THROW;
@ -201,37 +201,41 @@ extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
int *__detachstate) __THROW;
/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
extern int pthread_attr_setschedparam (pthread_attr_t *__attr,
__const struct sched_param *__param)
__THROW;
extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
__const struct sched_param *__restrict
__param) __THROW;
/* Return in *PARAM the scheduling parameters of *ATTR. */
extern int pthread_attr_getschedparam (__const pthread_attr_t *__attr,
struct sched_param *__param) __THROW;
extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
__attr,
struct sched_param *__restrict __param)
__THROW;
/* Set scheduling policy in *ATTR according to POLICY. */
extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
__THROW;
/* Return in *POLICY the scheduling policy of *ATTR. */
extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__attr,
int *__policy) __THROW;
extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
__attr, int *__restrict __policy)
__THROW;
/* Set scheduling inheritance mode in *ATTR according to INHERIT. */
extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
int __inherit) __THROW;
/* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
extern int pthread_attr_getinheritsched (__const pthread_attr_t *__attr,
int *__inherit) __THROW;
extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
__attr, int *__restrict __inherit)
__THROW;
/* Set scheduling contention scope in *ATTR according to SCOPE. */
extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
__THROW;
/* Return in *SCOPE the scheduling contention scope of *ATTR. */
extern int pthread_attr_getscope (__const pthread_attr_t *__attr,
int *__scope) __THROW;
extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
int *__restrict __scope) __THROW;
#ifdef __USE_UNIX98
/* Set the size of the guard area at the bottom of the thread. */
@ -239,8 +243,9 @@ extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
size_t __guardsize) __THROW;
/* Get the size of the guard area at the bottom of the thread. */
extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
size_t *__guardsize) __THROW;
extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
__attr, size_t *__restrict __guardsize)
__THROW;
#endif
/* Set the starting address of the stack of the thread to be created.
@ -251,8 +256,9 @@ extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
void *__stackaddr) __THROW;
/* Return the previously set address for the stack. */
extern int pthread_attr_getstackaddr (__const pthread_attr_t *__attr,
void **__stackaddr) __THROW;
extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
__attr, void **__restrict __stackaddr)
__THROW;
/* Add information about the minimum stack size needed for the thread
to be started. This size must never be less than PTHREAD_STACK_SIZE
@ -261,8 +267,9 @@ extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
size_t __stacksize) __THROW;
/* Return the currently used minimal stack size. */
extern int pthread_attr_getstacksize (__const pthread_attr_t *__attr,
size_t *__stacksize) __THROW;
extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
__attr, size_t *__restrict __stacksize)
__THROW;
/* Functions for scheduling control. */
@ -273,8 +280,10 @@ extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
__THROW;
/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
extern int pthread_getschedparam (pthread_t __target_thread, int *__policy,
struct sched_param *__param) __THROW;
extern int pthread_getschedparam (pthread_t __target_thread,
int *__restrict __policy,
struct sched_param *__restrict __param)
__THROW;
#ifdef __USE_UNIX98
/* Determine level of concurrency. */
@ -296,9 +305,9 @@ extern int pthread_yield (void) __THROW;
/* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
default values if later is NULL. */
extern int pthread_mutex_init (pthread_mutex_t *__mutex,
__const pthread_mutexattr_t *__mutex_attr)
__THROW;
extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
__const pthread_mutexattr_t *__restrict
__mutex_attr) __THROW;
/* Destroy MUTEX. */
extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) __THROW;
@ -311,9 +320,9 @@ extern int pthread_mutex_lock (pthread_mutex_t *__mutex) __THROW;
#ifdef __USE_XOPEN2K
/* Wait until lock becomes available, or specified time passes. */
extern int pthread_mutex_timedlock (pthread_mutex_t *__mutex,
__const struct timespec *__abstime)
__THROW;
extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
__const struct timespec *__restrict
__abstime) __THROW;
#endif
/* Unlock MUTEX. */
@ -330,8 +339,9 @@ extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) __THROW;
extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
/* Get the process-shared flag of the mutex attribute ATTR. */
extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *__attr,
int *__pshared) __THROW;
extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
__restrict __attr,
int *__restrict __pshared) __THROW;
/* Set the process-shared flag of the mutex attribute ATTR. */
extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
@ -345,8 +355,8 @@ extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
__THROW;
/* Return in *KIND the mutex kind attribute in *ATTR. */
extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__attr,
int *__kind) __THROW;
extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
__attr, int *__restrict __kind) __THROW;
#endif
@ -354,8 +364,9 @@ extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__attr,
/* Initialize condition variable COND using attributes ATTR, or use
the default values if later is NULL. */
extern int pthread_cond_init (pthread_cond_t *__cond,
__const pthread_condattr_t *__cond_attr) __THROW;
extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
__const pthread_condattr_t *__restrict
__cond_attr) __THROW;
/* Destroy condition variable COND. */
extern int pthread_cond_destroy (pthread_cond_t *__cond) __THROW;
@ -368,16 +379,17 @@ extern int pthread_cond_broadcast (pthread_cond_t *__cond) __THROW;
/* Wait for condition variable COND to be signaled or broadcast.
MUTEX is assumed to be locked before. */
extern int pthread_cond_wait (pthread_cond_t *__cond,
pthread_mutex_t *__mutex) __THROW;
extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex) __THROW;
/* Wait for condition variable COND to be signaled or broadcast until
ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
absolute time specification; zero is the beginning of the epoch
(00:00:00 GMT, January 1, 1970). */
extern int pthread_cond_timedwait (pthread_cond_t *__cond,
pthread_mutex_t *__mutex,
__const struct timespec *__abstime) __THROW;
extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
pthread_mutex_t *__restrict __mutex,
__const struct timespec *__restrict
__abstime) __THROW;
/* Functions for handling condition variable attributes. */
@ -388,8 +400,9 @@ extern int pthread_condattr_init (pthread_condattr_t *__attr) __THROW;
extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
/* Get the process-shared flag of the condition variable attribute ATTR. */
extern int pthread_condattr_getpshared (__const pthread_condattr_t *__attr,
int *__pshared) __THROW;
extern int pthread_condattr_getpshared (__const pthread_condattr_t *
__restrict __attr,
int *__restrict __pshared) __THROW;
/* Set the process-shared flag of the condition variable attribute ATTR. */
extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
@ -401,8 +414,9 @@ extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
/* Initialize read-write lock RWLOCK using attributes ATTR, or use
the default values if later is NULL. */
extern int pthread_rwlock_init (pthread_rwlock_t *__rwlock,
__const pthread_rwlockattr_t *__attr) __THROW;
extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
__const pthread_rwlockattr_t *__restrict
__attr) __THROW;
/* Destroy read-write lock RWLOCK. */
extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) __THROW;
@ -415,9 +429,9 @@ extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) __THROW;
#ifdef __USE_XOPEN2K
/* Try to acquire read lock for RWLOCK or return after specfied time. */
extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__rwlock,
__const struct timespec *__abstime)
__THROW;
extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
__const struct timespec *__restrict
__abstime) __THROW;
#endif
/* Acquire write lock for RWLOCK. */
@ -428,9 +442,9 @@ extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) __THROW;
#ifdef __USE_XOPEN2K
/* Try to acquire write lock for RWLOCK or return after specfied time. */
extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__rwlock,
__const struct timespec *__abstime)
__THROW;
extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
__const struct timespec *__restrict
__abstime) __THROW;
#endif
/* Unlock RWLOCK. */
@ -446,8 +460,9 @@ extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) __THROW;
extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
/* Return current setting of process-shared attribute of ATTR in PSHARED. */
extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *__attr,
int *__pshared) __THROW;
extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
__restrict __attr,
int *__restrict __pshared) __THROW;
/* Set process-shared attribute of ATTR to PSHARED. */
extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
@ -486,9 +501,9 @@ extern int pthread_spin_unlock (pthread_spinlock_t *__lock) __THROW;
/* Barriers are a also a new feature in 1003.1j-2000. */
extern int pthread_barrier_init (pthread_barrier_t *__barrier,
__const pthread_barrierattr_t *__attr,
unsigned int __count) __THROW;
extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
__const pthread_barrierattr_t *__restrict
__attr, unsigned int __count) __THROW;
extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
@ -496,8 +511,9 @@ extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) __THROW;
extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *__attr,
int *__pshared) __THROW;
extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
__restrict __attr,
int *__restrict __pshared) __THROW;
extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
int __pshared) __THROW;

View File

@ -1,5 +1,5 @@
/* Signal handling function for threaded programs.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 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
@ -17,7 +17,7 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _BITS_SIGTHREAD_H
#ifndef _BITS_SIGTHREAD_H
#define _BITS_SIGTHREAD_H 1
#if !defined _SIGNAL_H && !defined _PTHREAD_H
@ -28,8 +28,9 @@
/* Modify the signal mask for the calling thread. The arguments have
the same meaning as for sigprocmask(2). */
extern int pthread_sigmask (int __how, __const __sigset_t *__newmask,
__sigset_t *__oldmask)__THROW;
extern int pthread_sigmask (int __how,
__const __sigset_t *__restrict __newmask,
__sigset_t *__restrict __oldmask)__THROW;
/* Send signal SIGNO to the given thread. */
extern int pthread_kill (pthread_t __thread, int __signo) __THROW;

View File

@ -136,7 +136,8 @@ extern void *tfind (__const void *__key, void *__const *__rootp,
__compar_fn_t __compar);
/* Remove the element matching KEY from the tree pointed to by *ROOTP. */
extern void *tdelete (__const void *__key, void **__rootp,
extern void *tdelete (__const void *__restrict __key,
void **__restrict __rootp,
__compar_fn_t __compar);
#ifndef __ACTION_FN_T

View File

@ -163,4 +163,10 @@
# define __restrict /* Ignore */
#endif
/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is
array_name[restrict]
But gcc so far does not support this syntax. We define a separate macro
for this which can be enabled if the underlying compiler supports it. */
#define __restrict_arr
#endif /* sys/cdefs.h */

View File

@ -1,5 +1,5 @@
/* `fd_set' type and related macros, and `select'/`pselect' declarations.
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 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
@ -71,12 +71,14 @@ typedef __fd_set fd_set;
(if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
after waiting the interval specified therein. Returns the number of ready
descriptors, or -1 for errors. */
extern int __select (int __nfds, __fd_set *__readfds,
__fd_set *__writefds, __fd_set *__exceptfds,
struct timeval *__timeout) __THROW;
extern int select (int __nfds, __fd_set *__readfds,
__fd_set *__writefds, __fd_set *__exceptfds,
struct timeval *__timeout) __THROW;
extern int __select (int __nfds, __fd_set *__restrict __readfds,
__fd_set *__restrict __writefds,
__fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout) __THROW;
extern int select (int __nfds, __fd_set *__restrict __readfds,
__fd_set *__restrict __writefds,
__fd_set *__restrict __exceptfds,
struct timeval *__restrict __timeout) __THROW;
#ifdef __USE_GNU
/* XXX Once/if POSIX.1g gets official this prototype will be available
@ -84,9 +86,11 @@ extern int select (int __nfds, __fd_set *__readfds,
/* Same as above only that the TIMEOUT value is given with higher
resolution and a sigmask which is been set temporarily. This version
should be used. */
extern int pselect (int __nfds, __fd_set *__readfds, __fd_set *__writefds,
__fd_set *__exceptfds, const struct timespec *__timeout,
const __sigset_t *__sigmask) __THROW;
extern int pselect (int __nfds, __fd_set *__restrict __readfds,
__fd_set *__restrict __writefds,
__fd_set *__restrict __exceptfds,
const struct timespec *__restrict __timeout,
const __sigset_t *__restrict __sigmask) __THROW;
#endif
__END_DECLS

View 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

View 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));

View 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;

View 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

View File

@ -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;

View 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. */

View 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.

View 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

View 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.

View 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. */

View 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]. */

View 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)