summaryrefslogtreecommitdiff
path: root/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2007-05-26 04:49:06 +0000
committerUlrich Drepper <drepper@redhat.com>2007-05-26 04:49:06 +0000
commit42e6c66593eb7a07afd58e70bef9aeed9f910548 (patch)
tree917aa294557cf8439bdccc82c1e45a34edea2584 /nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
parent3d2dd6ca71fa9933e3413625d606f4b486661409 (diff)
downloadglibc-42e6c66593eb7a07afd58e70bef9aeed9f910548.tar.gz
* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
support. * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise. * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise. * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
Diffstat (limited to 'nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S')
-rw-r--r--nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S11
1 files changed, 8 insertions, 3 deletions
diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
index 3677ab3bf9..57b5b58186 100644
--- a/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
@@ -30,7 +30,7 @@
#define SYS_gettimeofday __NR_gettimeofday
#define SYS_futex 240
-#define FUTEX_WAKE 1
+#define FUTEX_WAIT 0
#if VALUE != 0
@@ -108,10 +108,15 @@ sem_timedwait:
movl %eax, 8(%esp)
movl 28(%esp), %ebx /* Load semaphore address. */
- xorl %ecx, %ecx
+#if FUTEX_WAIT == 0
+ movl PRIVATE(%ebx), %ecx
+#else
+ movl $FUTEX_WAIT, %ecx
+ orl PRIVATE(%ebx), %ecx
+#endif
movl %esp, %esi
- movl $SYS_futex, %eax
xorl %edx, %edx
+ movl $SYS_futex, %eax
ENTER_KERNEL
movl %eax, %esi