glibc/sysdeps/unix/sysv/linux/ia64/libpthread.abilist
Mike Crowe e996fa72a9 nptl: Add POSIX-proposed pthread_rwlock_clockrdlock & pthread_rwlock_clockwrlock
Add:
 int pthread_rwlock_clockrdlock (pthread_rwlock_t *rwlock,
                                 clockid_t clockid,
                                 const struct timespec *abstime)
and:
 int pthread_rwlock_clockwrlock (pthread_rwlock_t *rwlock,
                                 clockid_t clockid,
                                 const struct timespec *abstime)

which behave like pthread_rwlock_timedrdlock and
pthread_rwlock_timedwrlock respectively, except they always measure
abstime against the supplied clockid. The functions currently support
CLOCK_REALTIME and CLOCK_MONOTONIC and return EINVAL if any other
clock is specified.

	* sysdeps/nptl/pthread.h: Add pthread_rwlock_clockrdlock and
	pthread_wrlock_clockwrlock.
	* nptl/Makefile: Build pthread_rwlock_clockrdlock.c and
	pthread_rwlock_clockwrlock.c.
	* nptl/pthread_rwlock_clockrdlock.c: Implement
	pthread_rwlock_clockrdlock.
	* nptl/pthread_rwlock_clockwrlock.c: Implement
	pthread_rwlock_clockwrlock.
	* nptl/pthread_rwlock_common.c (__pthread_rwlock_rdlock_full): Add
	clockid parameter and verify that it indicates a supported clock on
	entry so that we fail even if it doesn't end up being used. Pass
	that clock on to futex_abstimed_wait when necessary.
	(__pthread_rwlock_wrlock_full): Likewise.
	* nptl/pthread_rwlock_rdlock.c: (__pthread_rwlock_rdlock): Pass
	CLOCK_REALTIME to __pthread_rwlock_rdlock_full even though it won't
	be used because there's no timeout.
	* nptl/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Pass
	CLOCK_REALTIME to __pthread_rwlock_wrlock_full even though it won't
	be used because there is no timeout.
	* nptl/pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
	Pass CLOCK_REALTIME to __pthread_rwlock_rdlock_full since abstime
	uses that clock.
	* nptl/pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
	Pass CLOCK_REALTIME to __pthread_rwlock_wrlock_full since abstime
	uses that clock.
	* sysdeps/unix/sysv/linux/aarch64/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/alpha/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/arm/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/csky/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/hppa/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/i386/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/ia64/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/m68k/coldfire/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/m68k/m680x0/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/microblaze/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/mips/mips64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/nios2/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/riscv/rv64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/sh/libpthread.abilist (GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/64/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* sysdeps/unix/sysv/linux/x86_64/x32/libpthread.abilist
	(GLIBC_2.30): Likewise.
	* nptl/tst-abstime.c (th): Add pthread_rwlock_clockrdlock and
	pthread_rwlock_clockwrlock timeout tests to match the existing
	pthread_rwlock_timedrdloock and pthread_rwlock_timedwrlock tests.
	* nptl/tst-rwlock14.c (do_test): Likewise.
	* nptl/tst-rwlock6.c Invent verbose_printf macro, and use for
	ancillary output throughout. (tf): Accept thread_args structure so
	that rwlock, a clockid and function name can be passed to the
	thread. (do_test_clock): Rename from do_test. Accept clockid
	parameter to specify test clock. Use the magic clockid value of
	CLOCK_USE_TIMEDLOCK to indicate that pthread_rwlock_timedrdlock and
	pthread_rwlock_timedwrlock should be tested, otherwise pass the
	specified clockid to pthread_rwlock_clockrdlock and
	pthread_rwlock_clockwrlock. Use xpthread_create and xpthread_join.
	(do_test): Call do_test_clock to test each clockid in turn.
	* nptl/tst-rwlock7.c: Likewise.
	* nptl/tst-rwlock9.c (writer_thread, reader_thread): Accept
	thread_args structure so that the (now int) thread number, the
	clockid and the function name can be passed to the thread.
	(do_test_clock): Renamed from do_test. Pass the necessary
	thread_args when creating the reader and writer threads. Use
	xpthread_create and xpthread_join.
	(do_test): Call do_test_clock to test each clockid in turn.
	* manual/threads.texi: Add documentation for
	pthread_rwlock_clockrdlock and pthread_rwlock_clockwrclock.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2019-07-12 13:36:24 +00:00

261 lines
7.9 KiB
Plaintext

GLIBC_2.11 pthread_sigqueue F
GLIBC_2.12 pthread_getname_np F
GLIBC_2.12 pthread_mutex_consistent F
GLIBC_2.12 pthread_mutexattr_getrobust F
GLIBC_2.12 pthread_mutexattr_setrobust F
GLIBC_2.12 pthread_setname_np F
GLIBC_2.18 pthread_getattr_default_np F
GLIBC_2.18 pthread_setattr_default_np F
GLIBC_2.2 _IO_flockfile F
GLIBC_2.2 _IO_ftrylockfile F
GLIBC_2.2 _IO_funlockfile F
GLIBC_2.2 __close F
GLIBC_2.2 __connect F
GLIBC_2.2 __errno_location F
GLIBC_2.2 __fcntl F
GLIBC_2.2 __fork F
GLIBC_2.2 __h_errno_location F
GLIBC_2.2 __libc_allocate_rtsig F
GLIBC_2.2 __libc_current_sigrtmax F
GLIBC_2.2 __libc_current_sigrtmin F
GLIBC_2.2 __lseek F
GLIBC_2.2 __open F
GLIBC_2.2 __open64 F
GLIBC_2.2 __pread64 F
GLIBC_2.2 __pthread_getspecific F
GLIBC_2.2 __pthread_key_create F
GLIBC_2.2 __pthread_mutex_destroy F
GLIBC_2.2 __pthread_mutex_init F
GLIBC_2.2 __pthread_mutex_lock F
GLIBC_2.2 __pthread_mutex_trylock F
GLIBC_2.2 __pthread_mutex_unlock F
GLIBC_2.2 __pthread_mutexattr_destroy F
GLIBC_2.2 __pthread_mutexattr_init F
GLIBC_2.2 __pthread_mutexattr_settype F
GLIBC_2.2 __pthread_once F
GLIBC_2.2 __pthread_rwlock_destroy F
GLIBC_2.2 __pthread_rwlock_init F
GLIBC_2.2 __pthread_rwlock_rdlock F
GLIBC_2.2 __pthread_rwlock_tryrdlock F
GLIBC_2.2 __pthread_rwlock_trywrlock F
GLIBC_2.2 __pthread_rwlock_unlock F
GLIBC_2.2 __pthread_rwlock_wrlock F
GLIBC_2.2 __pthread_setspecific F
GLIBC_2.2 __pwrite64 F
GLIBC_2.2 __read F
GLIBC_2.2 __res_state F
GLIBC_2.2 __send F
GLIBC_2.2 __sigaction F
GLIBC_2.2 __wait F
GLIBC_2.2 __write F
GLIBC_2.2 _pthread_cleanup_pop F
GLIBC_2.2 _pthread_cleanup_pop_restore F
GLIBC_2.2 _pthread_cleanup_push F
GLIBC_2.2 _pthread_cleanup_push_defer F
GLIBC_2.2 accept F
GLIBC_2.2 close F
GLIBC_2.2 connect F
GLIBC_2.2 fcntl F
GLIBC_2.2 flockfile F
GLIBC_2.2 fork F
GLIBC_2.2 fsync F
GLIBC_2.2 ftrylockfile F
GLIBC_2.2 funlockfile F
GLIBC_2.2 longjmp F
GLIBC_2.2 lseek F
GLIBC_2.2 lseek64 F
GLIBC_2.2 msync F
GLIBC_2.2 nanosleep F
GLIBC_2.2 open F
GLIBC_2.2 open64 F
GLIBC_2.2 pause F
GLIBC_2.2 pread F
GLIBC_2.2 pread64 F
GLIBC_2.2 pthread_atfork F
GLIBC_2.2 pthread_attr_destroy F
GLIBC_2.2 pthread_attr_getdetachstate F
GLIBC_2.2 pthread_attr_getguardsize F
GLIBC_2.2 pthread_attr_getinheritsched F
GLIBC_2.2 pthread_attr_getschedparam F
GLIBC_2.2 pthread_attr_getschedpolicy F
GLIBC_2.2 pthread_attr_getscope F
GLIBC_2.2 pthread_attr_getstack F
GLIBC_2.2 pthread_attr_getstackaddr F
GLIBC_2.2 pthread_attr_getstacksize F
GLIBC_2.2 pthread_attr_init F
GLIBC_2.2 pthread_attr_setdetachstate F
GLIBC_2.2 pthread_attr_setguardsize F
GLIBC_2.2 pthread_attr_setinheritsched F
GLIBC_2.2 pthread_attr_setschedparam F
GLIBC_2.2 pthread_attr_setschedpolicy F
GLIBC_2.2 pthread_attr_setscope F
GLIBC_2.2 pthread_attr_setstack F
GLIBC_2.2 pthread_attr_setstackaddr F
GLIBC_2.2 pthread_attr_setstacksize F
GLIBC_2.2 pthread_barrier_destroy F
GLIBC_2.2 pthread_barrier_init F
GLIBC_2.2 pthread_barrier_wait F
GLIBC_2.2 pthread_barrierattr_destroy F
GLIBC_2.2 pthread_barrierattr_init F
GLIBC_2.2 pthread_barrierattr_setpshared F
GLIBC_2.2 pthread_cancel F
GLIBC_2.2 pthread_cond_broadcast F
GLIBC_2.2 pthread_cond_destroy F
GLIBC_2.2 pthread_cond_init F
GLIBC_2.2 pthread_cond_signal F
GLIBC_2.2 pthread_cond_timedwait F
GLIBC_2.2 pthread_cond_wait F
GLIBC_2.2 pthread_condattr_destroy F
GLIBC_2.2 pthread_condattr_getpshared F
GLIBC_2.2 pthread_condattr_init F
GLIBC_2.2 pthread_condattr_setpshared F
GLIBC_2.2 pthread_create F
GLIBC_2.2 pthread_detach F
GLIBC_2.2 pthread_equal F
GLIBC_2.2 pthread_exit F
GLIBC_2.2 pthread_getconcurrency F
GLIBC_2.2 pthread_getcpuclockid F
GLIBC_2.2 pthread_getschedparam F
GLIBC_2.2 pthread_getspecific F
GLIBC_2.2 pthread_join F
GLIBC_2.2 pthread_key_create F
GLIBC_2.2 pthread_key_delete F
GLIBC_2.2 pthread_kill F
GLIBC_2.2 pthread_kill_other_threads_np F
GLIBC_2.2 pthread_mutex_destroy F
GLIBC_2.2 pthread_mutex_init F
GLIBC_2.2 pthread_mutex_lock F
GLIBC_2.2 pthread_mutex_timedlock F
GLIBC_2.2 pthread_mutex_trylock F
GLIBC_2.2 pthread_mutex_unlock F
GLIBC_2.2 pthread_mutexattr_destroy F
GLIBC_2.2 pthread_mutexattr_getkind_np F
GLIBC_2.2 pthread_mutexattr_getpshared F
GLIBC_2.2 pthread_mutexattr_gettype F
GLIBC_2.2 pthread_mutexattr_init F
GLIBC_2.2 pthread_mutexattr_setkind_np F
GLIBC_2.2 pthread_mutexattr_setpshared F
GLIBC_2.2 pthread_mutexattr_settype F
GLIBC_2.2 pthread_once F
GLIBC_2.2 pthread_rwlock_destroy F
GLIBC_2.2 pthread_rwlock_init F
GLIBC_2.2 pthread_rwlock_rdlock F
GLIBC_2.2 pthread_rwlock_timedrdlock F
GLIBC_2.2 pthread_rwlock_timedwrlock F
GLIBC_2.2 pthread_rwlock_tryrdlock F
GLIBC_2.2 pthread_rwlock_trywrlock F
GLIBC_2.2 pthread_rwlock_unlock F
GLIBC_2.2 pthread_rwlock_wrlock F
GLIBC_2.2 pthread_rwlockattr_destroy F
GLIBC_2.2 pthread_rwlockattr_getkind_np F
GLIBC_2.2 pthread_rwlockattr_getpshared F
GLIBC_2.2 pthread_rwlockattr_init F
GLIBC_2.2 pthread_rwlockattr_setkind_np F
GLIBC_2.2 pthread_rwlockattr_setpshared F
GLIBC_2.2 pthread_self F
GLIBC_2.2 pthread_setcancelstate F
GLIBC_2.2 pthread_setcanceltype F
GLIBC_2.2 pthread_setconcurrency F
GLIBC_2.2 pthread_setschedparam F
GLIBC_2.2 pthread_setspecific F
GLIBC_2.2 pthread_sigmask F
GLIBC_2.2 pthread_spin_destroy F
GLIBC_2.2 pthread_spin_init F
GLIBC_2.2 pthread_spin_lock F
GLIBC_2.2 pthread_spin_trylock F
GLIBC_2.2 pthread_spin_unlock F
GLIBC_2.2 pthread_testcancel F
GLIBC_2.2 pthread_yield F
GLIBC_2.2 pwrite F
GLIBC_2.2 pwrite64 F
GLIBC_2.2 raise F
GLIBC_2.2 read F
GLIBC_2.2 recv F
GLIBC_2.2 recvfrom F
GLIBC_2.2 recvmsg F
GLIBC_2.2 sem_close F
GLIBC_2.2 sem_destroy F
GLIBC_2.2 sem_getvalue F
GLIBC_2.2 sem_init F
GLIBC_2.2 sem_open F
GLIBC_2.2 sem_post F
GLIBC_2.2 sem_timedwait F
GLIBC_2.2 sem_trywait F
GLIBC_2.2 sem_unlink F
GLIBC_2.2 sem_wait F
GLIBC_2.2 send F
GLIBC_2.2 sendmsg F
GLIBC_2.2 sendto F
GLIBC_2.2 sigaction F
GLIBC_2.2 siglongjmp F
GLIBC_2.2 sigwait F
GLIBC_2.2 system F
GLIBC_2.2 tcdrain F
GLIBC_2.2 wait F
GLIBC_2.2 waitpid F
GLIBC_2.2 write F
GLIBC_2.2.3 pthread_getattr_np F
GLIBC_2.2.6 __nanosleep F
GLIBC_2.28 call_once F
GLIBC_2.28 cnd_broadcast F
GLIBC_2.28 cnd_destroy F
GLIBC_2.28 cnd_init F
GLIBC_2.28 cnd_signal F
GLIBC_2.28 cnd_timedwait F
GLIBC_2.28 cnd_wait F
GLIBC_2.28 mtx_destroy F
GLIBC_2.28 mtx_init F
GLIBC_2.28 mtx_lock F
GLIBC_2.28 mtx_timedlock F
GLIBC_2.28 mtx_trylock F
GLIBC_2.28 mtx_unlock F
GLIBC_2.28 thrd_create F
GLIBC_2.28 thrd_detach F
GLIBC_2.28 thrd_exit F
GLIBC_2.28 thrd_join F
GLIBC_2.28 tss_create F
GLIBC_2.28 tss_delete F
GLIBC_2.28 tss_get F
GLIBC_2.28 tss_set F
GLIBC_2.3.2 pthread_cond_broadcast F
GLIBC_2.3.2 pthread_cond_destroy F
GLIBC_2.3.2 pthread_cond_init F
GLIBC_2.3.2 pthread_cond_signal F
GLIBC_2.3.2 pthread_cond_timedwait F
GLIBC_2.3.2 pthread_cond_wait F
GLIBC_2.3.3 __pthread_cleanup_routine F
GLIBC_2.3.3 __pthread_register_cancel F
GLIBC_2.3.3 __pthread_register_cancel_defer F
GLIBC_2.3.3 __pthread_unregister_cancel F
GLIBC_2.3.3 __pthread_unregister_cancel_restore F
GLIBC_2.3.3 __pthread_unwind_next F
GLIBC_2.3.3 pthread_attr_getaffinity_np F
GLIBC_2.3.3 pthread_attr_setaffinity_np F
GLIBC_2.3.3 pthread_attr_setstack F
GLIBC_2.3.3 pthread_attr_setstacksize F
GLIBC_2.3.3 pthread_barrierattr_getpshared F
GLIBC_2.3.3 pthread_condattr_getclock F
GLIBC_2.3.3 pthread_condattr_setclock F
GLIBC_2.3.3 pthread_getaffinity_np F
GLIBC_2.3.3 pthread_setaffinity_np F
GLIBC_2.3.3 pthread_timedjoin_np F
GLIBC_2.3.3 pthread_tryjoin_np F
GLIBC_2.3.4 pthread_attr_getaffinity_np F
GLIBC_2.3.4 pthread_attr_setaffinity_np F
GLIBC_2.3.4 pthread_getaffinity_np F
GLIBC_2.3.4 pthread_setaffinity_np F
GLIBC_2.3.4 pthread_setschedprio F
GLIBC_2.30 pthread_cond_clockwait F
GLIBC_2.30 pthread_rwlock_clockrdlock F
GLIBC_2.30 pthread_rwlock_clockwrlock F
GLIBC_2.30 sem_clockwait F
GLIBC_2.4 pthread_mutex_consistent_np F
GLIBC_2.4 pthread_mutex_getprioceiling F
GLIBC_2.4 pthread_mutex_setprioceiling F
GLIBC_2.4 pthread_mutexattr_getprioceiling F
GLIBC_2.4 pthread_mutexattr_getprotocol F
GLIBC_2.4 pthread_mutexattr_getrobust_np F
GLIBC_2.4 pthread_mutexattr_setprioceiling F
GLIBC_2.4 pthread_mutexattr_setprotocol F
GLIBC_2.4 pthread_mutexattr_setrobust_np F