Hi Adhemerval, > The idea is to make NPTL implementation to use on the functions > provided by futex-internal.h. > > Checked on x86_64-linux-gnu and i686-linux-gnu. > --- > nptl/pthread_mutex_setprioceiling.c | 4 ++-- > nptl/pthread_mutex_unlock.c | 6 +++--- > nptl/sem_post.c | 9 ++------- > 3 files changed, 7 insertions(+), 12 deletions(-) > > diff --git a/nptl/pthread_mutex_setprioceiling.c > b/nptl/pthread_mutex_setprioceiling.c index cbef202579..8f1d6e1326 > 100644 --- a/nptl/pthread_mutex_setprioceiling.c > +++ b/nptl/pthread_mutex_setprioceiling.c > @@ -116,8 +116,8 @@ pthread_mutex_setprioceiling (pthread_mutex_t > *mutex, int prioceiling, | (prioceiling << > PTHREAD_MUTEX_PRIO_CEILING_SHIFT); atomic_full_barrier (); > > - lll_futex_wake (&mutex->__data.__lock, INT_MAX, > - PTHREAD_MUTEX_PSHARED (mutex)); > + futex_wake ((unsigned int *)&mutex->__data.__lock, INT_MAX, > + PTHREAD_MUTEX_PSHARED (mutex)); > > return 0; > } > diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c > index 2b4abb8ebe..56f1732e6d 100644 > --- a/nptl/pthread_mutex_unlock.c > +++ b/nptl/pthread_mutex_unlock.c > @@ -162,7 +162,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t > *mutex, int decr) private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex); > if (__glibc_unlikely ((atomic_exchange_rel > (&mutex->__data.__lock, 0) & FUTEX_WAITERS) != 0)) > - lll_futex_wake (&mutex->__data.__lock, 1, private); > + futex_wake ((unsigned int *) &mutex->__data.__lock, 1, > private); > /* We must clear op_pending after we release the mutex. > FIXME However, this violates the mutex destruction > requirements @@ -332,8 +332,8 @@ __pthread_mutex_unlock_full > (pthread_mutex_t *mutex, int decr) &oldval, newval)); > > if ((oldval & ~PTHREAD_MUTEX_PRIO_CEILING_MASK) > 1) > - lll_futex_wake (&mutex->__data.__lock, 1, > - PTHREAD_MUTEX_PSHARED (mutex)); > + futex_wake ((unsigned int *)&mutex->__data.__lock, 1, > + PTHREAD_MUTEX_PSHARED (mutex)); > > int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT; > > diff --git a/nptl/sem_post.c b/nptl/sem_post.c > index 88cfc24b30..5dbfb3a214 100644 > --- a/nptl/sem_post.c > +++ b/nptl/sem_post.c > @@ -84,19 +84,14 @@ int > attribute_compat_text_section > __old_sem_post (sem_t *sem) > { > - int *futex = (int *) sem; > + unsigned int *futex = (unsigned int *) sem; > > /* We must need to synchronize with consumers of this token, so > the atomic increment must have release MO semantics. */ > atomic_write_barrier (); > (void) atomic_increment_val (futex); > /* We always have to assume it is a shared semaphore. */ > - int err = lll_futex_wake (futex, 1, LLL_SHARED); > - if (__builtin_expect (err, 0) < 0) > - { > - __set_errno (-err); > - return -1; > - } > + futex_wake (futex, 1, LLL_SHARED); > return 0; > } > compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0); Another little step to remove lll_* macros. Reviewed-by: Lukasz Majewski Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de