KERNEL_DO_SYSCALL(tid,res);
break;
- case __NR_sched_setparam:
- case __NR_sched_getparam:
- case __NR_sched_yield:
- if (VG_(clo_instrument)) {
- VG_(message)(Vg_UserMsg,
- "Warning: noted but unhandled __NR_sched_* syscall (%d).",
- syscallno);
- VG_(message)(Vg_UserMsg,
- " This could cause spurious value errors"
- " to appear.");
- }
+ case __NR_sched_setparam: /* syscall 154 */
+ /* int sched_setparam(pid_t pid, const struct sched_param *p); */
+ if (VG_(clo_instrument))
+ VG_(printf)("sched_setparam ( %d, %p )\n", arg1, arg2 );
+ must_be_readable( tst, "sched_setparam(ptr)",
+ arg2, sizeof(struct sched_param) );
+ KERNEL_DO_SYSCALL(tid,res);
+ if (!VG_(is_kerror)(res))
+ make_readable( arg2, sizeof(struct sched_param) );
+ break;
+
+ case __NR_sched_getparam: /* syscall 155 */
+ /* int sched_getparam(pid_t pid, struct sched_param *p); */
+ if (VG_(clo_instrument))
+ VG_(printf)("sched_getparam ( %d, %p )\n", arg1, arg2 );
+ must_be_writable( tst, "sched_getparam(ptr)",
+ arg2, sizeof(struct sched_param) );
+ KERNEL_DO_SYSCALL(tid,res);
+ if (!VG_(is_kerror)(res))
+ make_readable( arg2, sizeof(struct sched_param) );
+ break;
+
+ case __NR_sched_yield: /* syscall 158 */
+ /* int sched_yield(void); */
+ if (VG_(clo_instrument))
+ VG_(printf)("sched_yield ()\n" );
KERNEL_DO_SYSCALL(tid,res);
break;