2006-09-15  Jakub Jelinek  <jakub@redhat.com>

	[BZ #3138]
	* rt/tst-aiod.c (do_prepare): Give name_len type size_t.
	* rt/tst-aiod64.c (do_prepare): Likewise.

2006-09-07  Jakub Jelinek  <jakub@redhat.com>

	* tst-aiod2.c: Adjust test for new semantics of lio_listio.
	* tst-aiod3.c: The thread is now supposed to be created.

	* Makefile: Use $(..) in place of ../.
	(tests): Add tst-aio{8,9,10}, tst-cpuclock{1,2}, tst-cputimer{1,2,3}
	and tst-clock2.
	(CPPFLAGS-librtkaio): Append -I$(..)rt.
	* Versions.def (librtkaio): Add GLIBC_2.4 version.
	* sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests)
	[!DONT_NEED_AIO_MISC_COND]: Don't use condvar, use AIO_MISC_WAIT.
	* sysdeps/unix/sysv/linux/kaio_misc.h [HAVE_FORCED_UNWIND]
	(DONT_NEED_AIO_MISC_COND, AIO_MISC_NOTIFY, AIO_MISC_WAIT): Define.
	(struct waitlist) [DONT_NEED_AIO_MISC_COND]: Remove cond.
	* sysdeps/unix/sysv/linux/kaio_suspend.c (struct clparam)
	[DONT_NEED_AIO_MISC_COND]: Remove cond.
	(cleanup) [DONT_NEED_AIO_MISC_COND]: Lock __aio_requests_mutex on
	entry.  Don't destroy param->cond.
	(aio_suspend): Fail if nent is negative.
	(aio_suspend) [DONT_NEED_AIO_MISC_COND]: Don't use cond, use
	AIO_MISC_WAIT.
	* sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Renamed to...
	(lio_listio_internal): ... this.  Don't use cond, but AIO_MISC_WAIT,
	if DONT_NEED_AIO_MISC_COND.  Remove mode parameter check.  Only set
	sigevent type to SIGEV_NONE if LIO_NO_INDIVIDUAL_EVENT is set.
	(__lio_listio_21): New function.  Compatiblity version which sets
	LIO_NO_INDIVIDUAL_EVENT before calling lio_listio_internal.
	(__lio_listio_item_notify): New function.
	* sysdeps/unix/sysv/linux/klio_listio64.c: Define __lio_listio_21 and
	__lio_listio_item_notify macros.
	* aio.h: Removed.
	* configure.in: New file
	* configure: Regenerated.
	* sysdeps/rtkaio/kaio_cancel.c: Moved to...
	* kaio_cancel.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_error.c: Moved to...
	* kaio_error.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_fsync.c: Moved to...
	* kaio_fsync.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_misc.c: Moved to...
	* kaio_misc.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_notify.c: Moved to...
	* kaio_notify.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_read.c: Moved to...
	* kaio_read.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_read64.c: Moved to...
	* kaio_read64.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_return.c: Moved to...
	* kaio_return.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_sigqueue.c: Moved to...
	* kaio_sigqueue.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_suspend.c: Moved to...
	* kaio_suspend.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_write.c: Moved to...
	* kaio_write.c: ... here.  New file.
	* sysdeps/rtkaio/kaio_write64.c: Moved to...
	* kaio_write64.c: ... here.  New file.
	* sysdeps/rtkaio/klio_listio.c: Moved to...
	* klio_listio.c: ... here.  New file.
	* sysdeps/rtkaio/klio_listio64.c: Moved to...
	* klio_listio64.c: ... here.  New file.
	* sysdeps/pthread/Versions: New file.
	* tst-aio8.c: New file.
	* tst-aio9.c: New file.
	* tst-aio10.c: New file.
	* tst-clock2.c: New file.
	* tst-cpuclock1.c: New file.
	* tst-cpuclock2.c: New file.
	* tst-cputimer1.c: New file.
	* tst-cputimer2.c: New file.
	* tst-cputimer3.c: New file.
	* sysdeps/unix/sysv/linux/sparc/Makefile: New file.
	* sysdeps/unix/sysv/linux/sparc/rtkaio-sysdep.c: New file.
	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
	* sysdeps/mips/Makefile: Removed.
	* sysdeps/unix/mips/rtkaio-sysdep.S: Removed.
	* sysdeps/unix/sysv/linux/hppa/Versions: Removed.
	* sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: Removed.

2006-07-19  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_misc.c: Include atomic.h.
	(kernel_callback): Ensure __return_value is updated before
	__error_code is set.

2006-05-11  Jakub Jelinek  <jakub@redhat.com>

	* Makefile (tests): Add tst-mqueue{8,9}, tst-timer5 and
	tst-aiod{,64,2,3,4,5}.
	(LDFLAGS-rtkaio.so): Add -Wl,--enable-new-dtags,-z,nodelete.
	* sysdeps/unix/sysv/linux/kaio_misc.h: Include signal.h and
	sysdep.h.
	(aio_start_notify_thread, aio_create_helper_thread): Define
	for !BROKEN_THREAD_SIGNALS.
	(__aio_start_notify_thread, __aio_create_helper_thread): New
	functions for !BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/kaio_misc.c: Include sys/sysmacros.h.
	(aio_create_helper_thread): Define if not yet defined.
	(__aio_create_helper_thread): New function.
	(__aio_wait_for_events): Pass 1 rather than 0 as min_nr to
	io_getevents.
	(handle_kernel_aio): Likewise.
	(__aio_create_kernel_thread): Use aio_create_helper_thread.
	(__aio_enqueue_user_request): Likewise.
	(handle_fildes_io): Likewise.  Remove noreturn attribute,
	return NULL instead of calling pthread_exit (NULL).
	(__aio_enqueue_request_ctx): Call fcntl and fxstat64 to avoid using
	kaio on non-O_DIRECT non-/dev/raw* filedescriptors.  For LIO_SYNC
	and LIO_DSYNC also set kctx to KCTX_NONE.
	* sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Don't start
	handle_kernel_aio thread if ktotal is zero.
	* sysdeps/pthread/Makefile (tests): Add tst-mqueue8x.
	(CFLAGS-tst-mqueue8x.c): Add -fexceptions.
	* Versions.def (librtkaio): Add GLIBC_2.3.4 version.
	* kaio_mq_close.c: New file.
	* kaio_mq_getattr.c: New file.
	* kaio_mq_notify.c: New file.
	* kaio_mq_open.c: New file.
	* kaio_mq_receive.c: New file.
	* kaio_mq_send.c: New file.
	* kaio_mq_setattr.c: New file.
	* kaio_mq_timedreceive.c: New file.
	* kaio_mq_timedsend.c: New file.
	* kaio_mq_unlink.c: New file.
	* sysdeps/pthread/tst-mqueue8x.c: New file.
	* sysdeps/unix/sysv/linux/syscalls.list: New file.
	* tst-mqueue8.c: New file.
	* tst-mqueue9.c: New file.
	* tst-timer5.c: New file.
	* tst-aiod.h: New file.
	* tst-aiod.c: New test.
	* tst-aiod64.c: New test.
	* tst-aiod2.c: New test.
	* tst-aiod3.c: New test.
	* tst-aiod4.c: New test.
	* tst-aiod5.c: New test.
	* sysdeps/mips/Makefile: New file.
	* sysdeps/unix/alpha/Makefile: New file.
	* sysdeps/unix/alpha/rtkaio-sysdep.S: New file.
	* sysdeps/unix/mips/rtkaio-sysdep.S: New file.
	* sysdeps/unix/sysv/linux/Makefile: New file.
	* sysdeps/unix/sysv/linux/s390/Makefile: New file.
	* sysdeps/unix/sysv/linux/s390/rtkaio-sysdep.S: New file.
	* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
	* sysdeps/unix/sysv/linux/powerpc/rtkaio-sysdep.c: New file.
	* sysdeps/unix/sysv/linux/ia64/Makefile: New file.
	* sysdeps/unix/sysv/linux/ia64/rtkaio-sysdep.S: New file.

2004-04-17  Jakub Jelinek  <jakub@redhat.com>

	* rt/Makefile (mq-routines): Set.
	(librt-routines): Use it.
	(tests): Add tst-mqueue{1,2,3,4,5,6,7} and tst-timer{3,4}.
	(tst-mqueue7-ARGS): Set.
	* rt/Versions (librt): Add mq_*@@GLIBC_2.3.4.
	* rt/tst-mqueue1.c: New file.
	* rt/tst-mqueue2.c: New file.
	* rt/tst-mqueue3.c: New file.
	* rt/tst-mqueue4.c: New file.
	* rt/tst-mqueue5.c: New file.
	* rt/tst-mqueue6.c: New file.
	* rt/tst-mqueue7.c: New file.
	* rt/tst-timer3.c: New file.
	* rt/tst-timer4.c: New file.

2003-08-14  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_misc.c (wait_for_kernel_requests):
	New function.
	(handle_fildes_io): Use it for LIO_SYNC and LIO_DSYNC.

	* sysdeps/pthread/Makefile (CPPFLAGS): Add -DBROKEN_THREAD_SIGNALS
	for rtkaio/linuxthreads combo.
	* sysdeps/unix/sysv/linux/kaio_misc.c (__aio_enqueue_request_ctx):
	Only set caller_pid if BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/kaio_misc.h (struct waitlist,
	struct requestlist): Remove caller_pid unless BROKEN_THREAD_SIGNALS.
	(__aio_notify_only): Remove last argument if not
	BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/kaio_suspend.c (aio_suspend): Only set
	caller_pid if not BROKEN_THREAD_SIGNALS.
	* sysdeps/unix/sysv/linux/klio_listio.c (lio_listio): Likewise.
	Remove last argument in call to __aio_notify_only unless
	BROKEN_THREAD_SIGNALS.

	* tst-aio.c: Avoid test duplication.  Include rt/aio.c instead.
	* tst-aio2.c: Similarly.
	* tst-aio3.c: Similarly.
	* tst-aio4.c: Similarly.
	* tst-aio5.c: Similarly.
	* tst-aio6.c: Similarly.
	* tst-aio64.c: Similarly.
	* tst-aio7.c: Similarly.
	* tst-clock.c: Similarly.
	* tst-clock_nanosleep.c: Similarly.
	* tst-shm.c: Similarly.
	* tst-timer2.c: Similarly.

2003-07-29  Roland McGrath  <roland@redhat.com>

	* rt/tst-timer2.c: New file.
	* rt/Makefile (tests): Add it.

2003-07-25  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
	to cancel kioctx != KCTX_NONE requests even if second argument
	to aio_cancel is NULL.

2003-07-24  Jakub Jelinek  <jakub@redhat.com>

	* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Return
	AIO_ALLDONE if aiocbp != NULL and has already completed.  Return
	-1/EINVAL if aiocbp->aio_fildes does not match fildes.

	* sysdeps/unix/sysv/linux/alpha/kaio_cancel.c: New file.
	* sysdeps/unix/sysv/linux/hppa/kaio_cancel.c: New file.
	* sysdeps/unix/sysv/linux/sparc/kaio_cancel.c: New file.
	* sysdeps/unix/sysv/linux/kaio_cancel.c (aio_cancel): Attempt
	to cancel request handled by kernel (so far just if aiocbp != NULL).
	* sysdeps/unix/sysv/linux/kaio_misc.c (__aio_remove_krequest): Fix
	assertion, req->kioctx must NOT be KCTX_NONE.
	* sysdeps/unix/sysv/linux/kaio_misc.h (__aio_remove_krequest): New
	prototype.

2003-07-23  Jakub Jelinek  <jakub@redhat.com>

	* New add-on.
