]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
implement waitpid syscall. Patch by Benjamin Lee <benjaminlee@users.sf.net>
authorDirk Mueller <daywalker@users.sourceforge.net>
Tue, 26 Aug 2003 17:36:26 +0000 (17:36 +0000)
committerDirk Mueller <daywalker@users.sourceforge.net>
Tue, 26 Aug 2003 17:36:26 +0000 (17:36 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@1806

coregrind/vg_syscalls.c

index 6d5885d7e371180b45711982bade6b3197a33cef..3fd6090d1ec66bf1f275a06bf99f440e4368a880 100644 (file)
@@ -3343,6 +3343,21 @@ void VG_(perform_assumed_nonblocking_syscall) ( ThreadId tid )
          }
          break;
 
+      case __NR_waitpid: /* syscall 7 */
+         /* pid_t waitpid(pid_t pid, int *status, int options); */
+         
+         MAYBE_PRINTF("waitpid ( %d, %p, %d )\n",
+                        arg1,arg2,arg3);
+         if (arg2 != (Addr)NULL)
+            SYSCALL_TRACK( pre_mem_write, tid, "waitpid(status)",
+                                          arg2, sizeof(int) );
+         KERNEL_DO_SYSCALL(tid,res);
+         if (!VG_(is_kerror)(res)) {
+            if (arg2 != (Addr)NULL)
+               VG_TRACK( post_mem_write, arg2, sizeof(int) );
+         }
+         break;
+
       case __NR_writev: { /* syscall 146 */
          /* int writev(int fd, const struct iovec * vector, size_t count); */
          UInt i;