summaryrefslogtreecommitdiff
path: root/libc/nptl/sysdeps/unix/sysv/linux/i386
diff options
context:
space:
mode:
authorjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-07-03 19:45:29 +0000
committerjoseph <joseph@7b3dc134-2b1b-0410-93df-9e9f96275f8d>2013-07-03 19:45:29 +0000
commite82a195fdeb7d40d392e9733b45f443f11fc7424 (patch)
treea9d32f5b54fe6a084b33a2e5b4c245152dde8970 /libc/nptl/sysdeps/unix/sysv/linux/i386
parent46062ca8edd487299e9c317b53598d973bce7c7f (diff)
downloadeglibc2-e82a195fdeb7d40d392e9733b45f443f11fc7424.tar.gz
Merge changes between r23421 and r23438 from /fsf/trunk.
git-svn-id: svn://svn.eglibc.org/trunk@23439 7b3dc134-2b1b-0410-93df-9e9f96275f8d
Diffstat (limited to 'libc/nptl/sysdeps/unix/sysv/linux/i386')
-rw-r--r--libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h b/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
index f665ac9e6..cc3ec5ba2 100644
--- a/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
+++ b/libc/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
@@ -430,6 +430,12 @@ LLL_STUB_UNWIND_INFO_END
: "memory"); \
result; })
+extern int __lll_timedlock_elision (int *futex, short *adapt_count,
+ const struct timespec *timeout,
+ int private) attribute_hidden;
+
+#define lll_timedlock_elision(futex, adapt_count, timeout, private) \
+ __lll_timedlock_elision(&(futex), &(adapt_count), timeout, private)
#define lll_robust_timedlock(futex, timeout, id, private) \
({ int result, ignore1, ignore2, ignore3; \
@@ -583,6 +589,22 @@ extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
} \
__result; })
+extern int __lll_lock_elision (int *futex, short *adapt_count, int private)
+ attribute_hidden;
+
+extern int __lll_unlock_elision(int *lock, int private)
+ attribute_hidden;
+
+extern int __lll_trylock_elision(int *lock, short *adapt_count)
+ attribute_hidden;
+
+#define lll_lock_elision(futex, adapt_count, private) \
+ __lll_lock_elision (&(futex), &(adapt_count), private)
+#define lll_unlock_elision(futex, private) \
+ __lll_unlock_elision (&(futex), private)
+#define lll_trylock_elision(futex, adapt_count) \
+ __lll_trylock_elision(&(futex), &(adapt_count))
+
#endif /* !__ASSEMBLER__ */
#endif /* lowlevellock.h */