summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2013-01-02 09:00:46 -0800
committerRichard Henderson <rth@twiddle.net>2013-01-02 09:00:46 -0800
commitcaed4e98ca463e72745e7173a21409dce658d04f (patch)
treed7339ce141f1e5633eef5cb1c111373e8fe0dbb5
parent0f5477af5df459af5c1cfa0fe28c158418307ff8 (diff)
downloadglibc-caed4e98ca463e72745e7173a21409dce658d04f.tar.gz
glibc-caed4e98ca463e72745e7173a21409dce658d04f.tar.xz
glibc-caed4e98ca463e72745e7173a21409dce658d04f.zip
alpha: Add lll_futex_timed_wait_bitset
-rw-r--r--ports/ChangeLog.alpha5
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h13
2 files changed, 18 insertions, 0 deletions
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 34cb0a82ce..9f74a64ecf 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,8 @@
+2013-01-02  Richard Henderson  <rth@redhat.com>
+
+	* sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
+	(lll_futex_timed_wait_bitset): New.
+
 2013-01-01  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/alpha/bits/termios.h: Reformat copyright
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
index 0ef2e7fd38..1d4b32848b 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/nptl/lowlevellock.h
@@ -78,6 +78,19 @@
 #define lll_futex_wait(futexp, val, private) \
   lll_futex_timed_wait (futexp, val, NULL, private)
 
+#define lll_futex_timed_wait_bitset(futexp, val, timespec, clockbit, private) \
+  ({									      \
+    INTERNAL_SYSCALL_DECL (__err);					      \
+    long int __ret;							      \
+    int __op = FUTEX_WAIT_BITSET | clockbit;				      \
+									      \
+    __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp),		      \
+			      __lll_private_flag (__op, private),	      \
+			      (val), (timespec), NULL /* Unused.  */, 	      \
+			      FUTEX_BITSET_MATCH_ANY);			      \
+    __ret;		      						      \
+  })
+
 #define lll_futex_timed_wait(futexp, val, timespec, private) \
   ({									      \
     INTERNAL_SYSCALL_DECL (__err);					      \