Added thread_get_stack_size() and thread_get_stack_min_min().

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7800 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_thread.c b/exp-drd/drd_thread.c
index 001fd4d..55bf0fd 100644
--- a/exp-drd/drd_thread.c
+++ b/exp-drd/drd_thread.c
@@ -127,6 +127,7 @@
       s_threadinfo[i].vg_threadid   = tid;
       s_threadinfo[i].pt_threadid   = INVALID_POSIX_THREADID;
       s_threadinfo[i].stack_min     = 0;
+      s_threadinfo[i].stack_min_min = 0;
       s_threadinfo[i].stack_startup = 0;
       s_threadinfo[i].stack_max     = 0;
       s_threadinfo[i].is_recording  = True;
@@ -221,6 +222,8 @@
   s_threadinfo[created].stack_max     = VG_(thread_get_stack_max)(vg_created);
   s_threadinfo[created].stack_startup = s_threadinfo[created].stack_max;
   s_threadinfo[created].stack_min     = s_threadinfo[created].stack_max;
+  s_threadinfo[created].stack_min_min = s_threadinfo[created].stack_max;
+  s_threadinfo[created].stack_size    = VG_(thread_get_stack_size)(vg_created);
   tl_assert(s_threadinfo[created].stack_max != 0);
 
   return created;
@@ -245,6 +248,13 @@
   return s_threadinfo[tid].stack_min;
 }
 
+Addr thread_get_stack_min_min(const DrdThreadId tid)
+{
+  tl_assert(0 <= tid && tid < DRD_N_THREADS
+            && tid != DRD_INVALID_THREADID);
+  return s_threadinfo[tid].stack_min_min;
+}
+
 Addr thread_get_stack_max(const DrdThreadId tid)
 {
   tl_assert(0 <= tid && tid < DRD_N_THREADS
@@ -252,6 +262,13 @@
   return s_threadinfo[tid].stack_max;
 }
 
+SizeT thread_get_stack_size(const DrdThreadId tid)
+{
+  tl_assert(0 <= tid && tid < DRD_N_THREADS
+            && tid != DRD_INVALID_THREADID);
+  return s_threadinfo[tid].stack_size;
+}
+
 /** Clean up thread-specific data structures. Call this just after 
  *  pthread_join().
  */