HPPA: Update pthread.h
authorCarlos O'Donell <carlos@codesourcery.com>
Mon, 9 Jan 2012 04:38:50 +0000 (23:38 -0500)
committerCarlos O'Donell <carlos@codesourcery.com>
Mon, 9 Jan 2012 04:38:50 +0000 (23:38 -0500)
Sync from libc pthread.h to get all the recent
changes including the use of const instead of
__const and __NOTHROWNL where appropriate.

ChangeLog.hppa
sysdeps/unix/sysv/linux/hppa/nptl/pthread.h

index 28b9f21..8988cf4 100644 (file)
@@ -1,5 +1,9 @@
 2012-01-08  Carlos O'Donell  <carlos@systemhalted.org>
 
+       * sysdeps/unix/sysv/linux/hppa/nptl/pthread.h: Sync from libc copy.
+
+2012-01-08  Carlos O'Donell  <carlos@systemhalted.org>
+
        * sysdeps/unix/sysv/linux/hppa/sys/epoll.h: Use const instead of __const.
        * sysdeps/unix/sysv/linux/hppa/sys/timerfd.h: Likewise.
 
index ee91dbf..8bb30c9 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
-   Free Software Foundation, Inc.
+/* Copyright (C) 2002-2011, 2012 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
@@ -223,9 +222,9 @@ __BEGIN_DECLS
    getting passed ARG.  Creation attributed come from ATTR.  The new
    handle is stored in *NEWTHREAD.  */
 extern int pthread_create (pthread_t *__restrict __newthread,
-                          __const pthread_attr_t *__restrict __attr,
+                          const pthread_attr_t *__restrict __attr,
                           void *(*__start_routine) (void *),
-                          void *__restrict __arg) __THROW __nonnull ((1, 3));
+                          void *__restrict __arg) __THROWNL __nonnull ((1, 3));
 
 /* Terminate calling thread.
 
@@ -253,7 +252,7 @@ extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
    This function is a cancellation point and therefore not marked with
    __THROW.  */
 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
-                                __const struct timespec *__abstime);
+                                const struct timespec *__abstime);
 #endif
 
 /* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
@@ -282,7 +281,7 @@ extern int pthread_attr_destroy (pthread_attr_t *__attr)
      __THROW __nonnull ((1));
 
 /* Get detach state attribute.  */
-extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
+extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
                                        int *__detachstate)
      __THROW __nonnull ((1, 2));
 
@@ -293,7 +292,7 @@ extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
 
 
 /* Get the size of the guard area created for stack overflow protection.  */
-extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
+extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
                                      size_t *__guardsize)
      __THROW __nonnull ((1, 2));
 
@@ -304,18 +303,17 @@ extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
 
 
 /* Return in *PARAM the scheduling parameters of *ATTR.  */
-extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
-                                      __attr,
+extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
                                       struct sched_param *__restrict __param)
      __THROW __nonnull ((1, 2));
 
 /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM.  */
 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
-                                      __const struct sched_param *__restrict
+                                      const struct sched_param *__restrict
                                       __param) __THROW __nonnull ((1, 2));
 
 /* Return in *POLICY the scheduling policy of *ATTR.  */
-extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
+extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
                                        __attr, int *__restrict __policy)
      __THROW __nonnull ((1, 2));
 
@@ -324,7 +322,7 @@ extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
      __THROW __nonnull ((1));
 
 /* Return in *INHERIT the scheduling inheritance mode of *ATTR.  */
-extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
+extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
                                         __attr, int *__restrict __inherit)
      __THROW __nonnull ((1, 2));
 
@@ -335,7 +333,7 @@ extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
 
 
 /* Return in *SCOPE the scheduling contention scope of *ATTR.  */
-extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
+extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
                                  int *__restrict __scope)
      __THROW __nonnull ((1, 2));
 
@@ -344,7 +342,7 @@ extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
      __THROW __nonnull ((1));
 
 /* Return the previously set address for the stack.  */
-extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
+extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
                                      __attr, void **__restrict __stackaddr)
      __THROW __nonnull ((1, 2)) __attribute_deprecated__;
 
@@ -357,7 +355,7 @@ extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
      __THROW __nonnull ((1)) __attribute_deprecated__;
 
 /* Return the currently used minimal stack size.  */
-extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
+extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
                                      __attr, size_t *__restrict __stacksize)
      __THROW __nonnull ((1, 2));
 
@@ -370,7 +368,7 @@ extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
 
 #ifdef __USE_XOPEN2K
 /* Return the previously set address for the stack.  */
-extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
+extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
                                  void **__restrict __stackaddr,
                                  size_t *__restrict __stacksize)
      __THROW __nonnull ((1, 2, 3));
@@ -387,12 +385,12 @@ extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
    the processors represented in CPUSET.  */
 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
                                        size_t __cpusetsize,
-                                       __const cpu_set_t *__cpuset)
+                                       const cpu_set_t *__cpuset)
      __THROW __nonnull ((1, 3));
 
 /* Get bit set in CPUSET representing the processors threads created with
    ATTR can run on.  */
-extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
+extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
                                        size_t __cpusetsize,
                                        cpu_set_t *__cpuset)
      __THROW __nonnull ((1, 3));
@@ -411,7 +409,7 @@ extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
 /* Set the scheduling parameters for TARGET_THREAD according to POLICY
    and *PARAM.  */
 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
-                                 __const struct sched_param *__param)
+                                 const struct sched_param *__param)
      __THROW __nonnull ((3));
 
 /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
@@ -432,7 +430,7 @@ extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
      __THROW __nonnull ((2));
 
 /* Set thread name visible in the kernel and its interfaces.  */
-extern int pthread_setname_np (pthread_t __target_thread, __const char *__name)
+extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
      __THROW __nonnull ((2));
 #endif
 
@@ -456,7 +454,7 @@ extern int pthread_yield (void) __THROW;
 /* Limit specified thread TH to run only on the processors represented
    in CPUSET.  */
 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
-                                  __const cpu_set_t *__cpuset)
+                                  const cpu_set_t *__cpuset)
      __THROW __nonnull ((3));
 
 /* Get bit set in CPUSET representing the processors TH can run on.  */
@@ -650,9 +648,9 @@ __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
     __pthread_unwind_buf_t __cancel_buf;                                     \
     void (*__cancel_routine) (void *) = (routine);                           \
     void *__cancel_arg = (arg);                                                      \
-    int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)              \
-                                     __cancel_buf.__cancel_jmp_buf, 0);      \
-    if (__builtin_expect (not_first_call, 0))                                \
+    int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)     \
+                                       __cancel_buf.__cancel_jmp_buf, 0);    \
+    if (__builtin_expect (__not_first_call, 0))                                      \
       {                                                                              \
        __cancel_routine (__cancel_arg);                                      \
        __pthread_unwind_next (&__cancel_buf);                                \
@@ -685,9 +683,9 @@ extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
     __pthread_unwind_buf_t __cancel_buf;                                     \
     void (*__cancel_routine) (void *) = (routine);                           \
     void *__cancel_arg = (arg);                                                      \
-    int not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)              \
-                                     __cancel_buf.__cancel_jmp_buf, 0);      \
-    if (__builtin_expect (not_first_call, 0))                                \
+    int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)     \
+                                       __cancel_buf.__cancel_jmp_buf, 0);    \
+    if (__builtin_expect (__not_first_call, 0))                                      \
       {                                                                              \
        __cancel_routine (__cancel_arg);                                      \
        __pthread_unwind_next (&__cancel_buf);                                \
@@ -731,7 +729,7 @@ extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROW;
 
 /* Initialize a mutex.  */
 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
-                              __const pthread_mutexattr_t *__mutexattr)
+                              const pthread_mutexattr_t *__mutexattr)
      __THROW __nonnull ((1));
 
 /* Destroy a mutex.  */
@@ -740,26 +738,26 @@ extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
 
 /* Try locking a mutex.  */
 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Lock a mutex.  */
 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 #ifdef __USE_XOPEN2K
 /* Wait until lock becomes available, or specified time passes. */
 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
-                                   __const struct timespec *__restrict
-                                   __abstime) __THROW __nonnull ((1, 2));
+                                   const struct timespec *__restrict
+                                   __abstime) __THROWNL __nonnull ((1, 2));
 #endif
 
 /* Unlock a mutex.  */
 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 
 /* Get the priority ceiling of MUTEX.  */
-extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
+extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
                                         __restrict __mutex,
                                         int *__restrict __prioceiling)
      __THROW __nonnull ((1, 2));
@@ -795,7 +793,7 @@ extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
      __THROW __nonnull ((1));
 
 /* Get the process-shared flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
+extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
                                         __restrict __attr,
                                         int *__restrict __pshared)
      __THROW __nonnull ((1, 2));
@@ -807,7 +805,7 @@ extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
 
 #if defined __USE_UNIX98 || defined __USE_XOPEN2K8
 /* Return in *KIND the mutex kind attribute in *ATTR.  */
-extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
+extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
                                      __attr, int *__restrict __kind)
      __THROW __nonnull ((1, 2));
 
@@ -819,7 +817,7 @@ extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
 #endif
 
 /* Return in *PROTOCOL the mutex protocol attribute in *ATTR.  */
-extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
+extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
                                          __restrict __attr,
                                          int *__restrict __protocol)
      __THROW __nonnull ((1, 2));
@@ -831,7 +829,7 @@ extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
      __THROW __nonnull ((1));
 
 /* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR.  */
-extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
+extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
                                             __restrict __attr,
                                             int *__restrict __prioceiling)
      __THROW __nonnull ((1, 2));
@@ -843,11 +841,11 @@ extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
 
 #ifdef __USE_XOPEN2K
 /* Get the robustness flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
+extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
                                        int *__robustness)
      __THROW __nonnull ((1, 2));
 # ifdef __USE_GNU
-extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
+extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
                                           int *__robustness)
      __THROW __nonnull ((1, 2));
 # endif
@@ -870,7 +868,7 @@ extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_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 *__restrict __rwlock,
-                               __const pthread_rwlockattr_t *__restrict
+                               const pthread_rwlockattr_t *__restrict
                                __attr) __THROW __nonnull ((1));
 
 /* Destroy read-write lock RWLOCK.  */
@@ -879,37 +877,37 @@ extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
 
 /* Acquire read lock for RWLOCK.  */
 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Try to acquire read lock for RWLOCK.  */
 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
-  __THROW __nonnull ((1));
+  __THROWNL __nonnull ((1));
 
 # ifdef __USE_XOPEN2K
 /* Try to acquire read lock for RWLOCK or return after specfied time.  */
 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-                                      __const struct timespec *__restrict
-                                      __abstime) __THROW __nonnull ((1, 2));
+                                      const struct timespec *__restrict
+                                      __abstime) __THROWNL __nonnull ((1, 2));
 # endif
 
 /* Acquire write lock for RWLOCK.  */
 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Try to acquire write lock for RWLOCK.  */
 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 # ifdef __USE_XOPEN2K
 /* Try to acquire write lock for RWLOCK or return after specfied time.  */
 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-                                      __const struct timespec *__restrict
-                                      __abstime) __THROW __nonnull ((1, 2));
+                                      const struct timespec *__restrict
+                                      __abstime) __THROWNL __nonnull ((1, 2));
 # endif
 
 /* Unlock RWLOCK.  */
 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 
 /* Functions for handling read-write lock attributes.  */
@@ -923,7 +921,7 @@ extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
      __THROW __nonnull ((1));
 
 /* Return current setting of process-shared attribute of ATTR in PSHARED.  */
-extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
+extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
                                          __restrict __attr,
                                          int *__restrict __pshared)
      __THROW __nonnull ((1, 2));
@@ -934,7 +932,7 @@ extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
      __THROW __nonnull ((1));
 
 /* Return current setting of reader/writer preference.  */
-extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
+extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
                                          __restrict __attr,
                                          int *__restrict __pref)
      __THROW __nonnull ((1, 2));
@@ -950,8 +948,8 @@ extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_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 *__restrict __cond,
-                             __const pthread_condattr_t *__restrict
-                             __cond_attr) __THROW __nonnull ((1));
+                             const pthread_condattr_t *__restrict __cond_attr)
+     __THROW __nonnull ((1));
 
 /* Destroy condition variable COND.  */
 extern int pthread_cond_destroy (pthread_cond_t *__cond)
@@ -959,11 +957,11 @@ extern int pthread_cond_destroy (pthread_cond_t *__cond)
 
 /* Wake up one thread waiting for condition variable COND.  */
 extern int pthread_cond_signal (pthread_cond_t *__cond)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Wake up all threads waiting for condition variables COND.  */
 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Wait for condition variable COND to be signaled or broadcast.
    MUTEX is assumed to be locked before.
@@ -983,8 +981,8 @@ extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
    __THROW.  */
 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
                                   pthread_mutex_t *__restrict __mutex,
-                                  __const struct timespec *__restrict
-                                  __abstime) __nonnull ((1, 2, 3));
+                                  const struct timespec *__restrict __abstime)
+     __nonnull ((1, 2, 3));
 
 /* Functions for handling condition variable attributes.  */
 
@@ -997,7 +995,7 @@ extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
      __THROW __nonnull ((1));
 
 /* Get the process-shared flag of the condition variable attribute ATTR.  */
-extern int pthread_condattr_getpshared (__const pthread_condattr_t *
+extern int pthread_condattr_getpshared (const pthread_condattr_t *
                                        __restrict __attr,
                                        int *__restrict __pshared)
      __THROW __nonnull ((1, 2));
@@ -1008,7 +1006,7 @@ extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
 
 #ifdef __USE_XOPEN2K
 /* Get the clock selected for the conditon variable attribute ATTR.  */
-extern int pthread_condattr_getclock (__const pthread_condattr_t *
+extern int pthread_condattr_getclock (const pthread_condattr_t *
                                      __restrict __attr,
                                      __clockid_t *__restrict __clock_id)
      __THROW __nonnull ((1, 2));
@@ -1034,15 +1032,15 @@ extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
 
 /* Wait until spinlock LOCK is retrieved.  */
 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Try to lock spinlock LOCK.  */
 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 /* Release spinlock LOCK.  */
 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 
 /* Functions to handle barriers.  */
@@ -1050,7 +1048,7 @@ extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
 /* Initialize BARRIER with the attributes in ATTR.  The barrier is
    opened when COUNT waiters arrived.  */
 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
-                                __const pthread_barrierattr_t *__restrict
+                                const pthread_barrierattr_t *__restrict
                                 __attr, unsigned int __count)
      __THROW __nonnull ((1));
 
@@ -1060,7 +1058,7 @@ extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
 
 /* Wait on barrier BARRIER.  */
 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
-     __THROW __nonnull ((1));
+     __THROWNL __nonnull ((1));
 
 
 /* Initialize barrier attribute ATTR.  */
@@ -1072,7 +1070,7 @@ extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
      __THROW __nonnull ((1));
 
 /* Get the process-shared flag of the barrier attribute ATTR.  */
-extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
+extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
                                           __restrict __attr,
                                           int *__restrict __pshared)
      __THROW __nonnull ((1, 2));
@@ -1104,7 +1102,7 @@ extern void *pthread_getspecific (pthread_key_t __key) __THROW;
 
 /* Store POINTER in the thread-specific data slot identified by KEY. */
 extern int pthread_setspecific (pthread_key_t __key,
-                               __const void *__pointer) __THROW ;
+                               const void *__pointer) __THROW ;
 
 
 #ifdef __USE_XOPEN2K