summaryrefslogtreecommitdiff
path: root/sysdeps
AgeCommit message (Collapse)Author
2009-04-072008-06-01 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* include/pthread/pthread.h (PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP): New definition. * sysdeps/generic/bits/mutex.h (__PTHREAD_MUTEX_RECURSIVE_INITIALIZER): New definition. * sysdeps/generic/bits/mutex-attr.h (__pthread_recursive_mutexattr): New definition. * sysdeps/generic/pt-mutexattr.c (__pthread_recursive_mutexattr): New declaration. * sysdeps/generic/pt-mutex-init.c (_pthread_mutex_init): If ATTR is &__PTHREAD_RECURSIVE_MUTEXATTR, don't allocate a copy, just save in MUTEX->ATTR. * sysdeps/generic/pt-mutex-destroy.c (_pthread_mutex_destroy): If MUTEX->ATTR is &__PTHREAD_RECURSIVE_MUTEXATTR, don't free it.
2009-04-072008-05-29 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* sysdeps/generic/sem-timedwait.c: Don't include <error.h>.
2009-04-07libhurd-mm/Neal H. Walfield
2008-05-29 Neal H. Walfield <neal@gnu.org> * exceptions.c (exception_handler_activated): Assume the fault is on the stack if it is one page above or three pages below the stack pointer. (exception_handler_init): Allocate an area of address space EXCEPTION_STACK_SIZE bytes larges. Fill it with pages. Set the first page as the thread's exception page and the top of the area minus one word as the stack pointer. Set the last word to the location of the exception page. * ia32-exception-entry.S: Include <hurd/exceptions.h>. (PAGESIZE): Don't define. (_exception_handler_entry): Rewrite to not assume that the exception page is at the start of the page in which the stack pointer is, but at the location stored in the word after the bottom of the stack. * Makefile.am (libhurd_mm_a_CCASFLAGS): New variable. * pager.c (ensure_stack): Change SPACE to be EXCEPTION_STACK_SIZE - PAGESIZE bytes large. Write to each page. libpthread/ 2008-05-29 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/hurd/pt-sysdep.h Include <hurd/exceptions.h>. (EXCEPTION_AREA_SIZE): Define. (EXCEPTION_AREA_SIZE_LOG2): Likewise. (EXCEPTION_PAGE): Likewise. (PTHREAD_SYSDEP_MEMBERS): Change object's type to an addr_t. Update users. Remove field exception_page, replace with exception_area. Add field exception_area_va. * sysdeps/l4/hurd/pt-thread-alloc.c: Include <hurd/as.h> and <hurd/addr.h>. (__pthread_thread_alloc): Allocate EXCEPTION_AREA_SIZE bytes of address space. Save it in THREAD->EXCEPTION_AREA_VA. Allocate a page for each page in that area. Save them in THREAD->EXCEPTION_AREA. * sysdeps/l4/hurd/ia32/pt-setup.c (__pthread_setup): Set EXCEPTION_PAGE->EXCEPTION_HANDLER_SP to the end of EXCEPTION_PAGE->EXCEPTION_HANDLER_SP minus one word, in which we save the address of the exception page. * sysdeps/l4/hurd/pt-thread-start.c (__pthread_thread_start): Set IN.EXCEPTION_PAGE to the first page in THREAD->EXCEPTION_AREA_VA. * sysdeps/l4/hurd/pt-thread-halt.c: Include <hurd/mutex.h>, <hurd/as.h> and <hurd/addr.h>. (saved_object_lock): New variable. (__pthread_thread_halt): Lock SAVED_OBJECT_LOCK when accessing SAVED_OBJECT. Free the address space used by the exception area (THREAD->EXCEPTION_AREA_VA) and its associated storage (THREAD->EXCEPTION_AREA). hurd/ 2008-05-29 Neal H. Walfield <neal@gnu.org> * exceptions.h: Include <hurd/stddef.h>. [ASM]: Only define relevant macros. (EXCEPTION_STACK_SIZE_LOG2): Define. (EXCEPTION_STACK_SIZE): Define. * stddef.h [ASM]: Only define relevant macros. (PAGESIZE): Don't append C type specifier. (PAGESIZE_LOG2): Likewise. viengoos/ 2008-05-29 Neal H. Walfield <neal@gnu.org> * as.c: Include <hurd/exceptions.h>. (ensure_stack): Change SPACE to be EXCEPTION_STACK_SIZE - PAGESIZE bytes large. Write to each page. * cap-lookup.c: Include <hurd/exceptions.h>. (ensure_stack): Change SPACE to be EXCEPTION_STACK_SIZE - PAGESIZE bytes large. Write to each page. * zalloc.c (ZONE_SIZE): Add suffix the 1 with a U type qualifier. (ZONES): Include one less zone.
2009-04-072008-05-27 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* pthread/pt-internal.h (__pthread_queue_iterate): Before returning the current element, save its next pointer. (__pthread_dequeuing_iterate): Likewise. * sysdeps/l4/hurd/pt-wakeup.c (__pthread_wakeup): Loop until we successfully wake THREAD.
2009-04-072008-05-21 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/hurd/bits/pthread-np.h: New file. * headers.m4: Don't link include/bits/pthread-np.h to libpthread/sysdeps/l4/bits/pthread-np.h but to libpthread/sysdeps/l4/hurd/bits/pthread-np.h. * include/pthread/pthread.h: Include <bits/pthread-np.h>. * sysdeps/l4/hurd/pt-setactivity-np.c (pthread_setactivity_np): New file. * Makefile.am (libpthread_a_SOURCES): Add pt-setactivity-np.c.
2009-04-072008-04-06 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/hurd/pt-kill.c: Just include "../generic/pt-kill.c".
2009-04-072008-03-01 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
Add signal implementation. * Makefile.am (SYSDEP_PATH): Add $(srcdir)/signal. (libpthread_a_SOURCES): Add pt-mutex-transfer-np.c, kill.c, killpg.c, pt-kill-siginfo-np.c, raise.c, sigaction.c, sigaddset.c, sigaltstack.c, sigdelset.c, sigemptyset.c, sigfillset.c, sig-internal.c, sig-internal.h, siginterrupt.c, sigismember.c, signal.c, signal-dispatch.c, signal.h, sigpending.c, sigprocmask.c, sigsuspend.c, sigtimedwait.c, sigwait.c, sigwaiter.c, sigwaitinfo.c, signal-dispatch-lowlevel.c, and sigprocmask.c. * headers.m4: Link libpthread/signal/signal.h into ../include. * sysdeps/generic/pt-mutex-transfer-np.c: New file. * signal/README: New file. * signal/TODO: Likewise. * signal/kill.c: Likewise. * signal/pt-kill-siginfo-np.c: Likewise. * signal/sig-internal.c: Likewise. * signal/sig-internal.h: Likewise. * signal/sigaction.c: Likewise. * signal/sigaltstack.c: Likewise. * signal/signal-dispatch.c: Likewise. * signal/signal.h: Likewise. * signal/sigpending.c: Likewise. * signal/sigsuspend.c: Likewise. * signal/sigtimedwait.c: Likewise. * signal/sigwaiter.c: Likewise. * signal/sigwaitinfo.c: Likewise. * sysdeps/l4/hurd/sig-sysdep.h: Likewise. * sysdeps/l4/hurd/sigprocmask.c: Likewise. * sysdeps/generic/killpg.c: Likewise. * sysdeps/generic/pt-kill.c: Likewise. * sysdeps/generic/raise.c: Likewise. * sysdeps/generic/sigaddset.c: Likewise. * sysdeps/generic/sigdelset.c: Likewise. * sysdeps/generic/sigemptyset.c: Likewise. * sysdeps/generic/sigfillset.c: Likewise. * sysdeps/generic/siginterrupt.c: Likewise. * sysdeps/generic/sigismember.c: Likewise. * sysdeps/generic/signal.c: Likewise. * sysdeps/generic/sigwait.c: Likewise. * sysdeps/l4/hurd/ia32/signal-dispatch-lowlevel.c: Likewise. * sysdeps/l4/hurd/pt-sysdep.c (sigprocmask): Remove function. * sysdeps/l4/hurd/pt-sigstate.c (__pthread_sigstate): Implement it. * sysdeps/l4/hurd/pt-sigstate-init.c: Include <sig-internal.h>. (__pthread_sigstate_init): Initialize THREAD->SS. * sysdeps/l4/hurd/pt-kill.c: Remove file. * pthread/pt-internal.h: Include <sig-internal.h>. (PTHREAD_SIGNAL_MEMBERS) [! PTHREAD_SIGNAL_MEMBERS]: Define. (struct __pthread): Add PTHREAD_SIGNAL_MEMBERS. * pthread/pt-self.c (pthread_self): Assert that SELF is not NULL.
2009-04-072008-02-16 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/hurd/ia32/pt-setup.c (stack_setup): Add correct casts to elide gcc warnings. (__pthread_setup): Likewise.
2009-04-07libhurd-mm/Neal H. Walfield
2008-02-13 Neal H. Walfield <neal@gnu.org> * storage.h (storage_alloc): Take additional parameter policy. Update callers. * storage.c (storage_alloc): Take additional parameter policy. Use it when allocating the object and updating the shadow capability slots. libpthread/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/hurd/pt-thread-alloc.c (__pthread_thread_alloc): Update use of storage_alloc to be consistent with new API. newlib/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * addon/newlib/libc/sys/hurd/getreent.c (slab_alloc): Update use of storage_alloc to be consistent with new API. ruth/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update use of storage_alloc to be consistent with new API.
2009-04-07libpthread/Neal H. Walfield
2008-02-13 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/hurd/pt-sysdep.c (_pthread_init_routine): Change function signature to take a function pointer and an argument and to not return. (init_routine): Likewise. Pass entry and argument to __pthread_create_internal. Instead of returning, jump to the program counter and switch stacks. libc-parts/ 2008-02-13 Neal H. Walfield <neal@gnu.org> * ia32-cmain.c (cmain): Update user of _pthread_init_routine to reflect API change.
2009-04-072008-02-11 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/hurd/ia32/pt-setup.c (_pthread_entry_point): New assembly function. (stack_setup): Take additional argument entry_point. Push it on the stack. (__pthread_setup): Set thread->mcontext.pc to &_pthread_entry_point. Pass ENTRY_POINT to stack_setup.
2009-04-07libhurd-ihash/Neal H. Walfield
2008-02-08 Neal H. Walfield <neal@gnu.org> * ihash.h: Include <bits/wordsize.h>. (hurd_ihash_key64_t): New definition. (struct _hurd_ihash_item64): New structure. (struct hurd_ihash): Change items's type void *. [__WORDSIZE == 32]: Add field large. (_HURD_IHASH_LARGE): New macro. (HURD_IHASH_INITIALIZER): Take additional argument large. Use it. (hurd_ihash_init): Take additional argument large. (hurd_ihash_buffer_size): Likewise. (hurd_ihash_init_with_buffer): Likewise. (hurd_ihash_create): Likewise. (hurd_ihash_replace): Change key's type to hurd_ihash_key64_t. (hurd_ihash_add): Likewise. (hurd_ihash_find): Likewise. (hurd_ihash_remove): Likewise. (HURD_IHASH_ITERATE): Rewrite to properly handle both 32- and 64-bit keys. * ihash.c (ITEM): New macro. (VALUE): Likewise. (KEY): Likewise. (ITEM_SIZE): Likewise. (index_empty): Use the above macros rather than accessing HT->ITEMS directly. (index_valid): Likewise and change key's type to a hurd_ihash_key64_t. (find_index): Likewise. (replace_one): Likewise. (hurd_ihash_replace): Likewise. (hurd_ihash_find): Likewise. (hurd_ihash_remove): Likewise. (hurd_ihash_init_internal): Take additional argument large. Use it. (hurd_ihash_init): Likewise. (hurd_ihash_init_with_buffer): Likewise. (hurd_ihash_create): Likewise. (hurd_ihash_buffer_size): Likewise. * t-ihash.c: Include <assert.h>. (main): Expect that TEST_LARGE is defined. Use it when calling hurd_ihash_init. If true, add some tests with 64-bit keys. * Makefile.am (TESTS): Add t-ihash64. (check_PROGRAMS): Likewise. (t_ihash_CPPFLAGS): Add -DTEST_LARGE=false. (t_ihash64_SOURCES): New variable. (t_ihash64_CPPFLAGS): Likewise. viengoos/ 2008-02-08 Neal H. Walfield <neal@gnu.org> * thread.c (thread_init): Update use of hurd_ihash_init_with_buffer to be consistent with new API. * object.c (object_init): Likewise. libpthread/ 2008-02-08 Neal H. Walfield <neal@gnu.org> * sysdeps/hurd/pt-setspecific.c (pthread_setspecific): Update use of hurd_ihash_create to be consistent with API changes.
2009-04-072008-01-17 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/hurd/pt-block.c: New file. * sysdeps/l4/hurd/pt-wakeup.c: Likewise.
2009-04-072008-01-01 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/generic/pt-mutex-timedlock.c (__pthread_mutex_timedlock_internal): Add additional asserts. [! NDEBUG]: Keep MUTEX->OWNER up to date. * sysdeps/generic/pt-mutex-trylock.c (__pthread_mutex_trylock): Add additional asserts. [! NDEBUG]: Keep MUTEX->OWNER up to date. * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): Add additional asserts. [! NDEBUG]: Keep MUTEX->OWNER up to date.
2009-04-072007-12-23 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* Makefile.am (AM_CPPFLAGS): Add "-std=gnu99 -Wall -g -O3". * sysdeps/l4/pt-block.c (__pthread_block): Remove unused variable err. * pthread/pt-join.c (pthread_join): Cast argument to pthread_cleanup_push to avoid warning.
2009-04-07hurd/Neal H. Walfield
2007-12-13 Neal H. Walfield <neal@gnu.org> * exceptions.h (exception_page_cleanup): New declaration. libhurd-mm/ 2007-12-13 Neal H. Walfield <neal@gnu.org> * exceptions.c (exception_frame_alloc): When allocating the first frame, set EXCEPTION_PAGE->EXCEPTION_STACK_BOTTOM. (exception_page_cleanup): New function. * ia32-exception-entry.S (_exception_handler_end): Correctly adjust the exception page's exception stack. libpthread/ 2007-12-13 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/hurd/pt-thread-halt.c: Include <hurd/exceptions.h>. (__pthread_thread_halt): Call exception_page_cleanup.
2009-04-072007-12-12 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/pt-block.c (__pthread_block): Clear the acceptor. Improve debugging output. * sysdeps/l4/pt-wakeup.c (__pthread_wakeup): Load an empty message. Improve debugging output.
2009-04-07viengoos/Neal H. Walfield
2007-12-04 Neal H. Walfield <neal@gnu.org> Remove exception threads. Replace with support for activations. * thread.h (THREAD_SLOTS): Bump to 3. (struct thread): Add field exception_page. Remove fields have_exception and exception. (thread_exregs): Take additional arguments exception_page and exception_page_out. Update users. (thread_raise_exception): New declaration. * thread.c (THREAD_VERSION): Define. (thread_init): Remove code related to the exception thread. (thread_commission): Likewise. (thread_decommission): Likewise. (thread_exregs): Likewise. Take additional arguments EXCEPTION_PAGE and EXCEPTION_PAGE_OUT. If CONTROL contains HURD_EXREGS_GET_REGS and EXCEPTION_PAGE_OUT is not NULL, return a capability to THREAD's exception page in *EXCEPTION_PAGE_OUT. If CONTROL contains HURD_EXREGS_SET_EXCEPTION_PAGE, then set THREAD's exception page to EXCEPTION_PAGE. (thread_raise_exception): New function. * server.c (server_loop): Remove code related to handling the exception thread. Call thread_raise_exception to propagate exception. Reimplement the exception_collect method. Update implementation of the thread_exregs method to support the new argument passing scheme. Add support for setting and retrieving the exception page. (REPLYW): Only clear MSG here. * rm.h (exception_collect): Take an additional argument, the principal. * object.h (object_type): New function. hurd/ 2007-12-04 Neal H. Walfield <neal@gnu.org> Remove exception threads. Replace with support for activations. * thread.h: Include <l4/ipc.h>. (struct exception_page): New structure. (THREAD_EXCEPTION_PAGE_SLOT): Define. (HURD_EXREGS_EXCEPTION_THREAD): Don't define. (HURD_EXREGS_SET_EXCEPTION_PAGE): Define. (HURD_EXREGS_SET_REGS): Update. (hurd_exception_handler_t): New definition. (struct hurd_thread_exregs_in): New structure. (struct hurd_thread_exregs_out): New structure. (thread_exregs): Replace the bulk of the arguments with struct hurd_thread_exregs_in and struct hurd_thread_exregs_out. Update users. * exceptions.h (HURD_THREAD_MAIN_VERSION): Remove macro. (HURD_THREAD_EXCEPTION_VERSION): Likewise. (hurd_thread_is_exception_thread): Remove function. (hurd_thread_is_main_thread): Likewise. (hurd_exception_thread): Likewise. (hurd_main_thread): Likewise. (exception_handler_loop): Remove declaration. (exception_handler): New declaration. (exception_handler_entry): Likewise. (exception_handler_end): Likewise. libhurd-mm/ 2007-12-04 Neal H. Walfield <neal@gnu.org> Remove exception threads. Replace with support for activations. * Makefile.am (ARCH_SOURCES): New variable. [ARCH_IA32]: Add ia32-exception-entry.S. (libhurd_mm_a_SOURCES): Add $(ARCH_SOURCES). * ia32-exception-entry.S: New file. * exceptions.c: Include <hurd/storage.h> and <hurd/thread.h>. (ARG): Don't define. (ARG64): Likewise. (ARG_ADDR): Likewise. (CHECK): Likewise. (exception_handler_loop): Remove function. (exception_fetch_exception): New function. (exception_handler): New function. (STACK_SIZE): Don't define. (stack): Don't declare. (exception_handler_init): Set up the thread's exception page. libpthread/ 2007-12-04 Neal H. Walfield <neal@gnu.org> Remove exception threads. Replace with support for activations. * sysdeps/l4/hurd/pt-sysdep.h (PTHREAD_SYSDEP_MEMBERS): Remove fields exception_handler_stack and exception_handler_sp. Add field exception_page. * sysdeps/l4/hurd/pt-thread-alloc.c (__pthread_thread_alloc): Allocate a page for THREAD->EXCEPTION_PAGE, not THREAD->EXCEPTION_HANDLER_STACK. * sysdeps/l4/hurd/ia32/pt-setup.c: Include <hurd/thread.h> and <hurd/exceptions.h>. (__pthread_setup): Remove code dealing with the exception thread. Set up the exception page. * sysdeps/l4/hurd/pt-thread-start.c (__pthread_thread_start): Remove code dealing with the exception thread. Update to use new rm_thread_exregs interface. Also set the thread's exception page. * sysdeps/l4/hurd/pt-thread-halt.c (__pthread_thread_halt): Remove code to dealing with the exception thread. Free the THREAD->EXCEPTION_PAGE. ruth/ 2007-12-04 Neal H. Walfield <neal@gnu.org> * ruth.c (main): Update to use new rm_thread_exregs interface.
2009-04-072007-11-23 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* pthread/pt-internal.h (__pthread_startup): Add declaration. * pthread/pt-create.c (entry_point): Call __pthread_startup. * sysdeps/l4/hurd/pt-sysdep.h: Include <hurd/storage.h> and <sys/mman.h>. (PTHREAD_SYSDEP_MEMBERS): Add fields object, exception_handler_stack and exception_handler_sp. (__attribute__): Call munmap. * sysdeps/l4/hurd/ia32/pt-setup.c (__pthread_setup): Set up thread->exception_handler_sp. Don't set the user define handle here. * sysdeps/l4/hurd/pt-startup.c: New file. Do it here. * sysdeps/l4/hurd/pt-thread-alloc.c: New file. * sysdeps/l4/hurd/pt-thread-halt.c: New file. * sysdeps/l4/hurd/pt-thread-start.c: New file. * Makefile.am (libpthread_a_SOURCES): Add pt-startup.c. * sysdeps/l4/pt-block.c: Include <hurd/stddef.h>. (__pthread_block): Detect IPC failure. Add debugging output. * sysdeps/l4/pt-wakeup.c: Include <hurd/stddef.h>. (__pthread_wakeup): Detect IPC failure. Add debugging output.
2009-04-072007-11-20 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/pt-thread-dealloc.c: New file. * Makefile.am (libpthread_a_SOURCES): Add pt-thread-dealloc.c. * sysdeps/l4/hurd/pt-sysdep.h (PTHREAD_STACK_DEFAULT): Change to 2MB. * sysdeps/l4/hurd/pt-sysdep.c (sched_yield): New function. (sigprocmask): Likewise. (init_routine): Only call __pthread_initialize once. Update comments.
2009-04-072007-11-20 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* Makefile.am (libpthread_a_SOURCES): Remove pt-create-np.c. * sysdeps/l4/pt-create-np.c: Remove file. * sysdeps/l4/pt-pool-np.c (pthread_pool_add_np): Change tid from an _L4_thread_id_t to an l4_thread_id_t. (pthread_pool_get_np): Return an l4_thread_id_t, not a _L4_thread_id_t. * sysdeps/l4/bits/pthread-np.h (pthread_create_from_l4_tid_np): Remove declaration. (pthread_pool_add_np): Change tid from an _L4_thread_id_t to an l4_thread_id_t. (pthread_pool_get_np): Return an l4_thread_id_t, not a _L4_thread_id_t. * sysdeps/l4/pt-docancel.c (__pthread_do_cancel): Implement for the case that the target thread is not the executing thread. * sysdeps/l4/pt-thread-alloc.c (__pthread_thread_alloc): Return EAGAIN if pthread_pool_get_np does not return a thread. Update comments. * sysdeps/l4/pt-thread-start.c (__pthread_thread_start): Don't set the thread's pager. Assert that if this is the first thread, then THREAD->THREADID is designates the running thread. * sysdeps/l4/pt-timedblock.c (__pthread_timedblock): Add warning about incomplete implementation. * Makefile.am (libpthread_a_SOURCES): Remove pt-thread-init.c. * sysdeps/l4/pt-thread-init.c: Remove dead file. * sysdeps/l4/pt-start.c: Remove dead file.
2009-04-072007-11-20 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
Merge changes from mainline Hurd. Update L4 bits to compile with those changes. * sysdeps/l4/pt-block.c (__pthread_block): Call l4_receive, not L4_Receive. * sysdeps/l4/pt-create-np.c (pthread_create_from_l4_tid_np): Don't pass TID to __pthread_create_internal. Emit a warning. * sysdeps/l4/pt-stack-alloc.c (allocate_page): Remove function. (__pthread_stack_alloc): Don't require that STACKSIZE is equal to __pthread_stacksize. Call mmap. * sysdeps/l4/pt-thread-halt.c (__pthread_thread_halt): Take additional argument, need_dealloc. Call __pthread_dealloc. Stop the thread. * sysdeps/l4/hurd/pt-sysdep.c (init_routine): When calling __pthread_create_internal, don't pass the tid. * tests/test-1.c (main): Use pthread_mutex_init, not PTHREAD_MUTEX_INITIALIZER. * pthread/pt-alloc.c: Don't include <bits/atomic.h>. Include <atomic.h>. (__pthread_free_threads): Make it an atomicptr_t, not an __atomicptr_t. (__pthread_alloc): Don't use __atomicptr_compare_and_swap, use atomic_compare_and_exchange_val_acq. * pthread/pt-create.c: Don't include <bits/atomic.h>. Include <atomic.h>. (__pthread_total): Make it an atomic_fast32_t, not an __atomic_t. (__pthread_create_internal): Use atomic_increment and atomic_decrement, not __atomic_inc and __atomic_dec. * pthread/pt-dealloc.c: Don't include <bits/atomic.h>. Include <atomic.h>. (__pthread_free_threads): Make it an atomicptr_t, not an __atomicptr_t. (__pthread_dealloc): Use atomic_compare_and_exchange_val_acq, not __atomicptr_compare_and_swap. * pthread/pt-exit.c: Don't include <bits/atomic.h>. Include <atomic.h>. (pthread_exit): Use atomic_decrement_and_test, not __atomic_dec_and_test. * pthread/pt-internal.h: Don't include <bits/atomic.h>. Include <atomic.h>. (__pthread_total): Make it an atomic_fast32_t, not an __atomic_t. * sysdeps/powerpc/bits/atomic.h: Remove file. * sysdeps/ia32/bits/atomic.h: Likewise.
2009-04-062007-08-06 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/bits/pthread-np.h (pthread_create_from_l4_tid_np): Don't require the GNU interface: use _L4_thread_id_t, not l4_thread_id_t. (pthread_pool_add_np): Likewise. (pthread_pool_get_np): Likewise. * sysdeps/l4/pt-create-np.c (pthread_create_from_l4_tid_np): Likewise. * sysdeps/l4/pt-pool-np.c (pool_list): Likewise. (pthread_pool_add_np): Likewise. (pthread_pool_get_np): Likewise.
2009-04-06libpthread/Neal H. Walfield
2005-02-08 Neal H. Walfield <neal@gnu.org> * sysdeps/posix/pt-spin.c (__pthread_spin_lock): Make a weak alias to _pthread_spin_lock. * sysdeps/l4/hurd/pt-sysdep.h (_pthread_self): Add __always_inline__ attribute. (__pthread_stack_dealloc): Likewise.
2009-04-06libc-parts/Neal H. Walfield
2005-01-12 Neal H. Walfield <neal@gnu.org> * assert.h: Include prototype for printf. (assert) [!NDEBUG]: Rewrite to do something useful. libhurd-cap-server/ 2005-01-12 Neal H. Walfield <neal@gnu.org> * class-init.c (hurd_cap_class_init_untyped): Fix assert. * bucket-manage-mt.c (manage_mt_worker): Likewise. libpthread/ 2005-01-12 Neal H. Walfield <neal@gnu.org> * sysdeps/l4/pt-thread-alloc.c: Replace assert with a compile time warning. * sysdeps/l4/hurd/pt-sigstate.c (__pthread_sigstate): Don't return EINVAL. Pretend to work so the generic code is happy.
2009-04-062004-11-02 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* sysdeps/generic/bits/condition.h (__PTHREAD_COND_INITIALIZER): Remove compound statement. * pthread/pt-alloc.c (initialize_pthread): Use compound statement. * sysdeps/generic/pt-cond-init.c (pthread_cond_init): Likewise.
2009-04-062004-11-01 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* pthread/pt-internal.h: Include <atomic.h>, not <bits/atomic.h>. (__pthread_total): Change type of declaration to uatomic_max_t. * pthread/pt-alloc.c: Include <atomic.h>, not <bits/atomic.h>. (__pthread_free_threads): Change type to uatomicptr_t. (__pthread_alloc): Call atomic_compare_and_exchange_val_acq instead of __atomicptr_compare_and_swap. * pthread/pt-create.c: Include <atomic.h>, not <bits/atomic.h>. (__pthread_total): Change type to uatomic_max_t. (__pthread_create_internal): Call atomic_increment, not __atomic_inc and atomic_decrement, not __atomic_dec. * pthread/pt-dealloc.c: Include <atomic.h>, not <bits/atomic.h>. (__pthread_free_threads): Declare as uatomicptr_t. (__pthread_dealloc): Call atomic_compare_and_exchange_val_acq instead of __atomicptr_compare_and_swap. * pthread/pt-exit.c: Include <atomic.h>, not <bits/atomic.h>. (pthread_exit): Call atomic_decrement_and_test instead of __atomic_dec_and_test. * sysdeps/l4/pt-create-np.c: Do not include <bits/atomic.h>.
2009-04-062004-03-23 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* sysdeps/generic/bits/mutex.h (__PTHREAD_MUTEX_INITIALIZER): Remove compound statement. (pthread_mutex_init): Use compound statement with initializer. * pthread/pt-alloc.c (initialize_pthread): Likewise. * sysdeps/generic/pt-mutex-init.c (_pthread_mutex_init): Likewise.
2009-04-06Fix last change.Marcus Brinkmann
2009-04-062004-03-19 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* sysdeps/l4/bits/pthread-np.h (pthread_pool_add_np, pthread_pool_get_np): New prototypes. * sysdeps/l4/pt-pool-np.c: New file. * Makefile.am (libpthread_a_SOURCES): Add pt-pool-np.c. * sysdeps/l4/pt-thread-alloc.c (__pthread_thread_alloc): Try to allocate thread from pool. * sysdeps/l4/pt-thread-halt.c (__pthread_thread_halt): Add thread to pool after stopping it.
2009-04-06Fix copyright year.Marcus Brinkmann
2009-04-062004-03-17 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* sysdeps/l4/pt-thread-start.c (__pthread_thread_start): Use L4 convenience interface.
2009-04-062004-03-17 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* sysdeps/l4/pt-spin.c (_pthread_spin_lock): Implement using new time period interface.
2009-04-062004-03-17 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* libpthread: New directory, populated with Neal H. Walfields pthread implementation.
2008-08-122008-08-12 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): Remove dead code.
2008-08-112008-08-11 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/l4/pt-docancel.c: Remove file. * sysdeps/l4/pt-thread-alloc.c: Likewise. * sysdeps/l4/pt-wakeup.c: Likewise. * sysdeps/l4/pt-thread-halt.c: Likewise. * sysdeps/l4/pt-start.c: Likewise. * sysdeps/l4/pt-stack-alloc.c: Likewise. * sysdeps/l4/pt-thread-start.c: Likewise. * sysdeps/l4/pt-block.c: Likewise. * sysdeps/l4/hurd/pt-sysdep.h: Likewise. * sysdeps/l4/hurd/pt-sysdep.c: Likewise. * sysdeps/l4/hurd/i386/pt-setup.c: Likewise. * sysdeps/l4/hurd/i386/pt-machdep.c: Likewise.
2008-08-03 * Makefile (sysdeps_headers): Add spin-lock-inline.h.Samuel Thibault
(SYSDEP_PATH): Move sysdeps/i386 right after sysdeps/$(MICROKERNEL)/i386. * include/pthread/pthread.h: Include <bits/spin-lock-inline.h>. * sysdeps/i386/bits/spin-lock.h: Move inlines to... * sysdeps/i386/bits/spin-lock-inline.h: ... new file. * sysdeps/mach/bits/spin-lock.h: Move inlines to... * sysdeps/mach/bits/spin-lock-inline.h: ... new file.
2008-08-03Update copyright year.Thomas Schwinge
2008-08-03 * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Fix cast fromSamuel Thibault
thread to integer. Fix reservation of stack room for initial frame. * sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Fix reservation of stack room for initial frame.
2008-08-022008-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
[libpthread] * sysdeps/i386/bits/memory.h (__memory_barrier): Add memory clobber. * sysdeps/i386/bits/spin-lock.h (__pthread_spin_trylock, __pthread_spin_unlock): Add memory clobbers. [libthreads] * i386/cthreads.h (spin_unlock, spin_try_lock): Add memory clobbers.
2008-08-022008-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* sysdeps/generic/bits/mutex.h: Do not include <errno.h> and <stddef.h>
2008-07-01Update copyright years.Thomas Schwinge
2008-06-292008-06-29 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock): Do not use assertx and threadid.
2008-06-282008-06-27 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* include/pthread/pthread.h: Do not define __need_clockid_t, include <time.h>, and define clockid_t if __clockid_defined is not defined. Include <pthread/pthreadtypes.h> (pthread_equal): New extern inline. (pthread_cleanup_push, pthread_cleanup_pop): New macros. (__pthread_process_shared, __pthread_inheritsched, __pthread_contentionscope, __pthread_detachstate, __pthread_mutex_protocol, __pthread_mutex_type, pthread_attr_t, pthread_mutex_attr_t, pthread_mutex_t, pthread_condattr_t, pthread_cond_t, pthread_spinlock_t, pthread_rwlockattr_t, pthread_rwlock_t, pthread_barrierattr_t, pthread_barrier_t, pthread_key_t, pthread_once_t): Move enums and typedefs to... * include/pthread/pthreadtypes.h: ... new file. * sysdeps/generic/bits/cancelation.h (pthread_cleanup_push): Rename macro to __pthread_cleanup_push. (pthread_cleanup_pop): Rename macro to __pthread_cleanup_pop. * sysdeps/generic/bits/barrier-attr.h (__pthread_process_shared): Forward-declare enum. * sysdeps/generic/bits/condition-attr.h (__pthread_process_shared): Likewise. * sysdeps/generic/bits/mutex-attr.h (__pthread_mutex_protocol, __pthread_process_shared, __pthread_mutex_type): Likewise. * sysdeps/generic/bits/rwlock-attr.h (__pthread_process_shared): Likewise. * sysdeps/generic/bits/thread-attr.h (__pthread_detachstate, __pthread_inheritsched, __pthread_contentionscope): Likewise. * sysdeps/generic/bits/pthread.h (pthread_t): Rename type to __pthread_t. (pthread_equal): Rename to __pthread_equal.
2008-06-272008-06-27 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* sysdeps/generic/bits/thread-barrier.h: Remove unused file.
2008-06-222008-06-22 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/generic/pt-mutex-timedlock.c (__pthread_mutex_timedlock_internal) [! NDEBUG]: Set MUTEX->OWNER appropriately and assert that it is consistent. * sysdeps/generic/pt-mutex-unlock.c (__pthread_mutex_unlock) [! NDEBUG]: Set MUTEX->OWNER appropriately and assert that it is consistent. * sysdeps/generic/pt-mutex-trylock.c (__pthread_mutex_trylock) [! NDEBUG]: Set MUTEX->OWNER.
2008-05-272008-05-27 Neal H. Walfield <neal@gnu.org>Neal H. Walfield
* sysdeps/mach/hurd/pt-docancel.c (__pthread_do_cancel): Fix assert.
2008-02-292008-02-29 Samuel Thibault <samuel.thibault@ens-lyon.orgSamuel Thibault
* sysdeps/l4/hurd/i386/pt-setup.c (stack_setup): Align stack on 0x10 for MMX operations. * sysdeps/mach/hurd/i386/pt-setup.c (stack_setup): Likewise.
2008-01-012008-01-01 Samuel Thibault <samuel.thibault@ens-lyon.orgSamuel Thibault
* include/pthread/pthread.h (pthread_spin_destroy, pthread_spin_init, pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock): Use __extern_inline macro instead of extern __inline. * sysdeps/i386/bits/spin-lock.h (__PT_SPIN_INLINE, __pthread_spin_lock): Likewise * sysdeps/mach/bits/spin-lock.h (__PT_SPIN_INLINE, __pthread_spin_lock): Likewise * sysdeps/generic/bits/pthread.h (pthread_equal): Declare ; only provide inline when __USE_EXTERN_INLINES is defined. Use __extern_inline macro instead of extern __inline. * sysdeps/i386/bits/memory.h (__memory_barrier): Add static to inline.
2007-08-022007-08-02 Samuel Thibault <samuel.thibault@ens-lyon.org>Samuel Thibault
* sysdeps/generic/bits/mutex.h (pthread_mutex_init) (pthread_mutex_destroy, __pthread_mutex_lock, __pthread_mutex_trylock) (pthread_mutex_lock, pthread_mutex_trylock): Remove inline definitions. * sysdeps/generic/bits/rwlock.h (pthread_rwlock_init) (pthread_rwlock_destroy): Likewise.