This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
libc-alpha, This is the first of the of ~nine hppa patches; it is by far the largest of all the patches (think orders of magnitude). HPPA has a single atomic operation, namely 'ldcw', which requires that we initialize locks to one instead of zero. Please keep this in mind when reviewing the code. Comments and feedback would be wonderful :) This is my first time doing a forward-feed of something like this, so please be patient if the first try takes a little iteration. --- 2002-18-09 Carlos O'Donell <carlos@baldric.uwo.ca> 2002-10-09 Carlos O'Donell <carlos@baldric.uwo.ca> * linuxthreads/descr.h: In "struct pthread_atomic" change "int p_spinlock" to "__atomic_lock_t p_spinlock" 2001-11-14 Matthew Wilcox <willy@debian.org> * linuxthreads/oldsemaphore.c: (__old_sem_init): Change "__LT_SPINLOCK_INIT" to "__ATOMIC_LOCK_INIT". * linuxthreads/pt-machine.c: Define extern for "try_lock" function call. * linuxthreads/spinlock.c: Change "int * spinlock" to "__atomic_lock_t * spinlock", "__LT_SPINLOCK_INIT" to "__ATOMIC_LOCK_INIT", and "0" to "__ATOMIC_LOCK_INIT", where required. In "struct wait_node" change "int abandoned" to "__atomic_lock_t abandoned" (__pthread_release): Function call argument changed from "int * spinlock" to "__atomic_lock_t * spinlock", and "__LT_SPINLOCK_INIT" changed to "__ATOMIC_LOCK_INIT". (__pthread_alt_timedlock): "0" to "__ATOMIC_LOCK_INIT" and change calls from "testandset" to "try_lock"; (__pthread_alt_unlock): "0" to "__ATOMIC_LOCK_INIT", and "p_node->abandoned" to "lock_held(&p_node->abandoned)", and changed calls from "testandset" to "try_lock" where required. (__pthread_compare_and_swap): Function call argument changed from "int * spinlock" to "__atomic_lock_t * spinlock". (__pthread_acquire): Function call argument changed from "int * spinlock" to "__atomic_lock_t * spinlock", and changed calls from "testandset" to "try_lock" where required. * linuxthreads/spinlock.h: Remove testandset macro. (__pthread_compare_and_swap): Extern changed to match function. (compare_and_swap): Likewise. (compare_and_swap_with_release_semantics): Function arg. type change. (compare_and_swap): Function arg. type change. (__pthread_compare_and_swap): Extern changed to match function. (__pthread_init_lock): "__LT_SPINLOCK_INIT" changed to "__ATOMIC_LOCK_INIT". (__pthread_alt_trylock): "__LT_SPINLOCK_INIT" to "__ATOMIC_LOCK_INIT" and change calls from "testandset" to "try_lock". * linuxthreads/sysdeps/alpha/pt-machine.h: (testandset): Deleted (renamed to try_lock). (try_lock): New. (lock_held): New. * linuxthreads/sysdeps/arm/pt-machine.h: Likewise. * linuxthreads/sysdeps/cris/pt-machine.h: Likewise. * linuxthreads/sysdeps/i386/i686/pt-machine.h: Likewise. * linuxthreads/sysdeps/i386/pt-machine.h: Likewise. * linuxthreads/sysdeps/ia64/pt-machine.h: Likewise. * linuxthreads/sysdeps/m68k/pt-machine.h: Likewise. * linuxthreads/sysdeps/mips/pt-machine.h: Likewise. * linuxthreads/sysdeps/powerpc/pt-machine.h: Likewise. * linuxthreads/sysdeps/s390/s390-32/pt-machine.h: Likewise. * linuxthreads/sysdeps/s390/s390-64/pt-machine.h: Likewise. * linuxthreads/sysdeps/sh/pt-machine.h: Likewise. * linuxthreads/sysdeps/sparc/sparc32/pt-machine.h: Likewise. * linuxthreads/sysdeps/sparc/sparc64/pt-machine.h: Likewise. * linuxthreads/sysdeps/pthread/bits/pthreadtypes.h: typedef __atomic_lock_t to int for all other arches leaving them the same as before. (_pthread_fastlock): Change "int" to "__atomic_lock_t". * linuxthreads/sysdeps/pthread/bits/libc-lock.h: Include the use of PTHREAD_MUTEX_INITIALIZER for the case of __LOCK_INITIALISER_NOT_ZERO. * linuxthreads/sysdeps/pthread/bits/initspin.h: Define __ATOMIC_LOCK_INIT as 0 for all arches. Include changes to associated macros. * linuxthreads/sysdeps/hppa/pspinlock.c : (__ldcw): New. (__pthread_spin_lock): Cleanup. (__pthread_spin_trylock): Cleanup. * linuxthreads/sysdeps/hppa/pt-machine.h: (__get_cr27): New. (__set_cr27): New. (testandset): Deleted (renamed to try_lock). (try_lock): New. (lock_held): New. * linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h: Remove "__LT_SPINLOCK_INIT" and define "__ATOMIC_LOCK_INIT" to "((__atomic_lock_t) { 1 })" while changing the associated macros that relied on this. * linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/pthreadtypes.h: New file. * sysdeps/hppa/dl-fptr.c: Change the use of "1" to "__ATOMIC_LOCK_INIT". (__hppa_make_fptr): Call 'try_lock' instead of 'testandset', and change the use of "1" to "__ATOMIC_LOCK_INIT". (_dl_unmap): Likewise. (_dl_lookup_address): Likewise. * sysdeps/ia64/dl-fptr.c: In "static struct local" change "int lock" to "__atomic_lock_t lock" (lock): Change calls from "testandset" to "try_lock", and change "0" to "__ATOMIC_LOCK_INIT" where needed. * sysdeps/unix/sysv/linux/hppa/bits/ipc.h: New file. * sysdeps/unix/sysv/linux/hppa/bits/msq.h: New file. * sysdeps/unix/sysv/linux/hppa/bits/sem.h: New file. * sysdeps/unix/sysv/linux/hppa/bits/shm.h: New file.
Attachment:
00-glibc23-hppa-pthreads
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |