DRD updates (Bart Van Assche):

- Updated copyright statement: replaced 2006-2007 by 2006-2008.
- Added copyright statement in the files where it was missing
(drd_track.h and drd_clientreq.c)
- Eliminated dependencies on core header files -- there are no more
#include "pub_core....h" directives in the exp-drd source code.
- Added semaphore support.
- Added barrier support.
- Added pthread_mutex_timedlock() support.
- Stack depth of stack traces printed by exp-drd can now be set via
--num-callers=...
- Added command-line option --trace-barrier=[yes|no].
- Added regression test for pthread_barrier() (matinv, a program that
performs matrix inversion).
- Added regression test sem_as_mutex, which tests whether race
detection works correctly when a semaphore is used to ensure mutual
exclusion of critical sections.
- Some of helgrind's regression tests are now used to test both
helgrind and exp-drd: tc17_sembar and tc18_semabuse.
- Cleaned up bitmap implementation code now that the const keyword has
been added to the declarations of the OSet functions.
- Cleaned up exp-drd/Makefile.am
- Updated exp-drd/TODO.txt




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7346 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_clientreq.h b/exp-drd/drd_clientreq.h
index e07f008..4d7d4f3 100644
--- a/exp-drd/drd_clientreq.h
+++ b/exp-drd/drd_clientreq.h
@@ -52,29 +52,29 @@
   VG_USERREQ__POST_THREAD_JOIN,
   /* args: pthread_t (joinee) */
 
-  /* To notify the core of a pthread_mutex_init call */
+  /* to notify the drd tool of a pthread_mutex_init call. */
   VG_USERREQ__PRE_MUTEX_INIT,
   /* args: Addr, MutexT */
-  /* To notify the core of a pthread_mutex_destroy call */
+  /* to notify the drd tool of a pthread_mutex_destroy call. */
   VG_USERREQ__POST_MUTEX_DESTROY,
   /* args: Addr, SizeT, MutexT */
-  /* To notify the core of pthread_mutex_lock calls */
+  /* to notify the drd tool of pthread_mutex_lock calls */
   VG_USERREQ__PRE_PTHREAD_MUTEX_LOCK,
   /* args: Addr, SizeT, MutexT */
-  /* To notify the core of pthread_mutex_lock calls */
+  /* to notify the drd tool of pthread_mutex_lock calls */
   VG_USERREQ__POST_PTHREAD_MUTEX_LOCK,
   /* args: Addr, SizeT, MutexT */
-  /* To notify the core of pthread_mutex_unlock calls */
+  /* to notify the drd tool of pthread_mutex_unlock calls */
   VG_USERREQ__PRE_PTHREAD_MUTEX_UNLOCK,
   /* args: Addr */
   VG_USERREQ__SPIN_INIT_OR_UNLOCK,
   /* args: Addr spinlock, SizeT size */
 
 
-  /* To notify the core of a pthread_cond_init call */
+  /* to notify the drd tool of a pthread_cond_init call. */
   VG_USERREQ__POST_PTHREAD_COND_INIT,
   /* args: Addr */
-  /* To notify the core of a pthread_cond_destroy call */
+  /* to notify the drd tool of a pthread_cond_destroy call. */
   VG_USERREQ__PRE_PTHREAD_COND_DESTROY,
   /* args: Addr cond, SizeT cond_size, Addr mutex, SizeT mutex_size */
   VG_USERREQ__PRE_PTHREAD_COND_WAIT,
@@ -86,6 +86,35 @@
   VG_USERREQ__PRE_PTHREAD_COND_BROADCAST,
   /* args: Addr cond */
 
+  /* To notify the drd tool of a sem_init call. */
+  VG_USERREQ__SEM_INIT,
+  /* args: Addr sem, SizeT sem_size, Word pshared, Word value */
+  /* To notify the drd tool of a sem_destroy call. */
+  VG_USERREQ__SEM_DESTROY,
+  /* args: Addr sem */
+  /* To notify the drd tool of a sem_wait call. */
+  VG_USERREQ__POST_SEM_WAIT,
+  /* args: Addr sem, SizeT sem_size */
+  /* To notify the drd tool before a sem_post call. */
+  VG_USERREQ__PRE_SEM_POST,
+  /* args: Addr sem, SizeT sem_size */
+  /* To notify the drd tool after a sem_post call. */
+  VG_USERREQ__POST_SEM_POST,
+  /* args: Addr sem, SizeT sem_size */
+
+  /* To notify the drd tool of a pthread_barrier_init call. */
+  VG_USERREQ__BARRIER_INIT,
+  /* args: Addr barrier, SizeT barrier_size, Word count */
+  /* To notify the drd tool of a pthread_barrier_destroy call. */
+  VG_USERREQ__BARRIER_DESTROY,
+  /* args: Addr barrier */
+  /* To notify the drd tool of a pthread_barrier_wait call. */
+  VG_USERREQ__PRE_BARRIER_WAIT,
+  /* args: Addr barrier */
+  /* To notify the drd tool of a pthread_barrier_wait call. */
+  VG_USERREQ__POST_BARRIER_WAIT,
+  /* args: Addr barrier, Word has_waited */
+
 };
 
 typedef enum