From 043ad426e7927a49a872e915c3cde88b682aea71 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 19 Mar 2003 03:34:48 +0000 Subject: * Versions (libpthread: GLIBC_2.2): Remove pthread_barrierattr_getpshared, never really existed. (libpthread: GLIBC_2.0): Move __pthread_initialize to ... (libpthread: GLIBC_PRIVATE): ... here. --- nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'nptl/sysdeps/unix/sysv/linux') diff --git a/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h b/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h index bfd109f080..2b58d2e63a 100644 --- a/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h +++ b/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h @@ -99,6 +99,18 @@ __val; \ }) +/* Atomically store newval and return the old value. */ +#define __lll_test_and_set(futex, newval) \ + ({ int __val; \ + __asm __volatile ("1: lwarx %0,0,%3\n" \ + " stwcx. %2,0,%3\n" \ + " bne- 1b" \ + : "=&r" (__val), "=m" (*futex) \ + : "r" (futex), "r" (newval), "1" (*futex) \ + : "cr0"); \ + __val; }) + + extern void __lll_lock_wait (int *futex, int val) attribute_hidden; #define lll_mutex_lock(lock) \ -- cgit v1.2.3-70-g09d2