drd: Fix pthread_rwlock_timed{rd,wr}lock intercepts (#332263)

From: Ivo Raisr <ivosh@ivosh.net>


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13877 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/drd/drd_pthread_intercepts.c b/drd/drd_pthread_intercepts.c
index a2233d5..0fe90c9 100644
--- a/drd/drd_pthread_intercepts.c
+++ b/drd/drd_pthread_intercepts.c
@@ -1162,14 +1162,15 @@
           (pthread_rwlock_t* rwlock), (rwlock));
 
 static __always_inline
-int pthread_rwlock_timedrdlock_intercept(pthread_rwlock_t* rwlock)
+int pthread_rwlock_timedrdlock_intercept(pthread_rwlock_t* rwlock,
+                                         const struct timespec *timeout)
 {
    int   ret;
    OrigFn fn;
    VALGRIND_GET_ORIG_FN(fn);
    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_RWLOCK_RDLOCK,
                                    rwlock, 0, 0, 0, 0);
-   CALL_FN_W_W(ret, fn, rwlock);
+   CALL_FN_W_WW(ret, fn, rwlock, timeout);
    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_RWLOCK_RDLOCK,
                                    rwlock, ret == 0, 0, 0, 0);
    return ret;
@@ -1177,17 +1178,19 @@
 
 PTH_FUNCS(int,
           pthreadZurwlockZutimedrdlock, pthread_rwlock_timedrdlock_intercept,
-          (pthread_rwlock_t* rwlock), (rwlock));
+          (pthread_rwlock_t* rwlock, const struct timespec *timeout),
+          (rwlock, timeout));
 
 static __always_inline
-int pthread_rwlock_timedwrlock_intercept(pthread_rwlock_t* rwlock)
+int pthread_rwlock_timedwrlock_intercept(pthread_rwlock_t* rwlock,
+                                         const struct timespec *timeout)
 {
    int   ret;
    OrigFn fn;
    VALGRIND_GET_ORIG_FN(fn);
    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__PRE_RWLOCK_WRLOCK,
                                    rwlock, 0, 0, 0, 0);
-   CALL_FN_W_W(ret, fn, rwlock);
+   CALL_FN_W_WW(ret, fn, rwlock, timeout);
    VALGRIND_DO_CLIENT_REQUEST_STMT(VG_USERREQ__POST_RWLOCK_WRLOCK,
                                    rwlock, ret == 0, 0, 0, 0);
    return ret;
@@ -1195,7 +1198,8 @@
 
 PTH_FUNCS(int,
           pthreadZurwlockZutimedwrlock, pthread_rwlock_timedwrlock_intercept,
-          (pthread_rwlock_t* rwlock), (rwlock));
+          (pthread_rwlock_t* rwlock, const struct timespec *timeout),
+          (rwlock, timeout));
 
 static __always_inline
 int pthread_rwlock_tryrdlock_intercept(pthread_rwlock_t* rwlock)