]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
More system call fixups.
authorTom Hughes <tom@compton.nu>
Wed, 20 Jul 2005 09:24:04 +0000 (09:24 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 20 Jul 2005 09:24:04 +0000 (09:24 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4213

coregrind/m_syswrap/syswrap-amd64-linux.c
coregrind/m_syswrap/syswrap-generic.c
coregrind/m_syswrap/syswrap-x86-linux.c

index 9e1a2b8fe5e18b0ae0f762be4618a32c006f5db9..2aa9583d566ae28d72d8bfb1b219411ceaf1a8e7 100644 (file)
@@ -1307,7 +1307,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
    GENX_(__NR_chroot,            sys_chroot),         // 161 
    GENX_(__NR_sync,              sys_sync),           // 162 
    //   (__NR_acct,              sys_acct),           // 163 
-   //   (__NR_settimeofday,      sys_settimeofday),   // 164 
+   GENX_(__NR_settimeofday,      sys_settimeofday),   // 164 
 
    LINX_(__NR_mount,             sys_mount),          // 165
    //   (__NR_umount2,           sys_umount),         // 166 
@@ -1377,17 +1377,17 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 
    PLAX_(__NR_semtimedop,        sys_semtimedop),     // 220 
    LINX_(__NR_fadvise64,         sys_fadvise64),      // 221 
-   //   (__NR_timer_create,      sys_timer_create),   // 222 
-   //   (__NR_timer_settime,     sys_timer_settime),  // 223 
-   //   (__NR_timer_gettime,     sys_timer_gettime),  // 224 
+   GENXY(__NR_timer_create,      sys_timer_create),   // 222 
+   GENXY(__NR_timer_settime,     sys_timer_settime),  // 223 
+   GENXY(__NR_timer_gettime,     sys_timer_gettime),  // 224 
 
-   //   (__NR_timer_getoverrun,  sys_timer_getoverrun)// 225 
-   //   (__NR_timer_delete,      sys_timer_delete),   // 226 
-   //   (__NR_clock_settime,     sys_clock_settime),  // 227 
+   GENX_(__NR_timer_getoverrun,  sys_timer_getoverrun), // 225 
+   GENX_(__NR_timer_delete,      sys_timer_delete),   // 226 
+   GENX_(__NR_clock_settime,     sys_clock_settime),  // 227 
    GENXY(__NR_clock_gettime,     sys_clock_gettime),  // 228 
-   //   (__NR_clock_getres,      sys_clock_getres),   // 229 
+   GENXY(__NR_clock_getres,      sys_clock_getres),   // 229 
 
-   //   (__NR_clock_nanosleep,   sys_clock_nanosleep),// 230 
+   GENXY(__NR_clock_nanosleep,   sys_clock_nanosleep),// 230 
    LINX_(__NR_exit_group,        sys_exit_group),     // 231 
    LINXY(__NR_epoll_wait,        sys_epoll_wait),     // 232 
    LINX_(__NR_epoll_ctl,         sys_epoll_ctl),      // 233 
index 628249f465c5eabaf9dfc8dec5cf427442c3d850..73357b9c2733338d1779bea0b6b45e6720e4cfc5 100644 (file)
@@ -5646,6 +5646,23 @@ POST(sys_clock_getres)
    POST_MEM_WRITE( ARG2, sizeof(struct vki_timespec) );
 }
 
+PRE(sys_clock_nanosleep)
+{
+   *flags |= SfMayBlock|SfPostOnFail;
+   PRINT("sys_clock_nanosleep( %d, %d, %p, %p )", ARG1,ARG2,ARG3,ARG4);
+   PRE_REG_READ4(int32_t, "clock_nanosleep",
+                 vki_clockid_t, clkid, int, flags,
+                 const struct timespec *, rqtp, struct timespec *, rmtp);
+   PRE_MEM_READ( "clock_nanosleep(rqtp)", ARG3, sizeof(struct vki_timespec) );
+   if (ARG4 != 0)
+      PRE_MEM_WRITE( "clock_nanosleep(rmtp)", ARG4, sizeof(struct vki_timespec) );
+}
+POST(sys_clock_nanosleep)
+{
+   if (ARG4 != 0 && FAILURE && RES_unchecked == VKI_EINTR)
+      POST_MEM_WRITE( ARG4, sizeof(struct vki_timespec) );
+}
+
 #undef PRE
 #undef POST
 
index b09f25e8db45a43fd1c9cf16bbd45f5c6f37f920..b5c7a9b7f3c4f918fda4f5e44b9d223059f01541 100644 (file)
@@ -2263,7 +2263,7 @@ const SyscallTableEntry ML_(syscall_table)[] = {
 
    GENXY(__NR_clock_gettime,     sys_clock_gettime),  // (timer_create+6)
    GENXY(__NR_clock_getres,      sys_clock_getres),   // (timer_create+7)
-//zz    //   (__NR_clock_nanosleep,   sys_clock_nanosleep),// (timer_create+8) */*
+   GENXY(__NR_clock_nanosleep,   sys_clock_nanosleep),// (timer_create+8) */*
    GENXY(__NR_statfs64,          sys_statfs64),       // 268
    GENXY(__NR_fstatfs64,         sys_fstatfs64),      // 269