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
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
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
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