2006-09-15 Jakub Jelinek [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 * 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 * 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 * 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 * 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 * 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 * rt/tst-timer2.c: New file. * rt/Makefile (tests): Add it. 2003-07-25 Jakub Jelinek * 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 * 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 * New add-on.