|
Jakub Jelinek |
7c8238 |
--- valgrind-3.2.3/include/vki-linux.h (revision 6760)
|
|
Jakub Jelinek |
7c8238 |
+++ valgrind-3.2.3/include/vki-linux.h (working copy)
|
|
Jakub Jelinek |
7c8238 |
@@ -1151,6 +1151,7 @@
|
|
Jakub Jelinek |
7c8238 |
#define VKI_FUTEX_FD (2)
|
|
Jakub Jelinek |
7c8238 |
#define VKI_FUTEX_REQUEUE (3)
|
|
Jakub Jelinek |
7c8238 |
#define VKI_FUTEX_CMP_REQUEUE (4)
|
|
Jakub Jelinek |
7c8238 |
+#define VKI_FUTEX_PRIVATE_FLAG (128)
|
|
Jakub Jelinek |
7c8238 |
|
|
Jakub Jelinek |
7c8238 |
struct vki_robust_list {
|
|
Jakub Jelinek |
7c8238 |
struct vki_robust_list __user *next;
|
|
Jakub Jelinek |
7c8238 |
--- valgrind-3.2.3/coregrind/m_syswrap/syswrap-linux.c (revision 6760)
|
|
Jakub Jelinek |
7c8238 |
+++ valgrind-3.2.3/coregrind/m_syswrap/syswrap-linux.c (working copy)
|
|
Jakub Jelinek |
7c8238 |
@@ -843,21 +843,25 @@
|
|
Jakub Jelinek |
7c8238 |
PRINT("sys_futex ( %p, %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4,ARG5);
|
|
Jakub Jelinek |
7c8238 |
switch(ARG2) {
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_CMP_REQUEUE:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_CMP_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
PRE_REG_READ6(long, "futex",
|
|
Jakub Jelinek |
7c8238 |
vki_u32 *, futex, int, op, int, val,
|
|
Jakub Jelinek |
7c8238 |
struct timespec *, utime, vki_u32 *, uaddr2, int, val3);
|
|
Jakub Jelinek |
7c8238 |
break;
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_REQUEUE:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
PRE_REG_READ5(long, "futex",
|
|
Jakub Jelinek |
7c8238 |
vki_u32 *, futex, int, op, int, val,
|
|
Jakub Jelinek |
7c8238 |
struct timespec *, utime, vki_u32 *, uaddr2);
|
|
Jakub Jelinek |
7c8238 |
break;
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_WAIT:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_WAIT | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
PRE_REG_READ4(long, "futex",
|
|
Jakub Jelinek |
7c8238 |
vki_u32 *, futex, int, op, int, val,
|
|
Jakub Jelinek |
7c8238 |
struct timespec *, utime);
|
|
Jakub Jelinek |
7c8238 |
break;
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_WAKE:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_WAKE | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_FD:
|
|
Jakub Jelinek |
7c8238 |
PRE_REG_READ3(long, "futex",
|
|
Jakub Jelinek |
7c8238 |
vki_u32 *, futex, int, op, int, val);
|
|
Jakub Jelinek |
7c8238 |
@@ -873,16 +877,20 @@
|
|
Jakub Jelinek |
7c8238 |
|
|
Jakub Jelinek |
7c8238 |
switch(ARG2) {
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_WAIT:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_WAIT | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
if (ARG4 != 0)
|
|
Jakub Jelinek |
7c8238 |
PRE_MEM_READ( "futex(timeout)", ARG4, sizeof(struct vki_timespec) );
|
|
Jakub Jelinek |
7c8238 |
break;
|
|
Jakub Jelinek |
7c8238 |
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_REQUEUE:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_CMP_REQUEUE:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_CMP_REQUEUE | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
PRE_MEM_READ( "futex(futex2)", ARG5, sizeof(Int) );
|
|
Jakub Jelinek |
7c8238 |
break;
|
|
Jakub Jelinek |
7c8238 |
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_WAKE:
|
|
Jakub Jelinek |
7c8238 |
+ case VKI_FUTEX_WAKE | VKI_FUTEX_PRIVATE_FLAG:
|
|
Jakub Jelinek |
7c8238 |
case VKI_FUTEX_FD:
|
|
Jakub Jelinek |
7c8238 |
/* no additional pointers */
|
|
Jakub Jelinek |
7c8238 |
break;
|