]> granicus.if.org Git - strace/blobdiff - sched.c
io.c: use printaddr and umove_or_printaddr
[strace] / sched.c
diff --git a/sched.c b/sched.c
index 8bb7c253eb8d3401c592166b8f8d2f9ec97815b2..eda241fd3d79d58ee8e447abef1c0a95b00a750f 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -18,59 +18,45 @@ SYS_FUNC(sched_getscheduler)
 
 SYS_FUNC(sched_setscheduler)
 {
-       if (entering(tcp)) {
-               struct sched_param p;
-               tprintf("%d, ", (int) tcp->u_arg[0]);
-               printxval(schedulers, tcp->u_arg[1], "SCHED_???");
-               if (umove(tcp, tcp->u_arg[2], &p) < 0)
-                       tprintf(", %#lx", tcp->u_arg[2]);
-               else
-                       tprintf(", { %d }", p.sched_priority);
-       }
-       return 0;
+       tprintf("%d, ", (int) tcp->u_arg[0]);
+       printxval(schedulers, tcp->u_arg[1], "SCHED_???");
+       tprints(", ");
+       printnum_int(tcp, tcp->u_arg[2], "%d");
+
+       return RVAL_DECODED;
 }
 
 SYS_FUNC(sched_getparam)
 {
-       if (entering(tcp)) {
+       if (entering(tcp))
                tprintf("%d, ", (int) tcp->u_arg[0]);
-       } else {
-               struct sched_param p;
-               if (umove(tcp, tcp->u_arg[1], &p) < 0)
-                       tprintf("%#lx", tcp->u_arg[1]);
-               else
-                       tprintf("{ %d }", p.sched_priority);
-       }
+       else
+               printnum_int(tcp, tcp->u_arg[1], "%d");
        return 0;
 }
 
 SYS_FUNC(sched_setparam)
 {
-       if (entering(tcp)) {
-               struct sched_param p;
-               if (umove(tcp, tcp->u_arg[1], &p) < 0)
-                       tprintf("%d, %#lx", (int) tcp->u_arg[0], tcp->u_arg[1]);
-               else
-                       tprintf("%d, { %d }", (int) tcp->u_arg[0], p.sched_priority);
-       }
-       return 0;
+       tprintf("%d, ", (int) tcp->u_arg[0]);
+       printnum_int(tcp, tcp->u_arg[1], "%d");
+
+       return RVAL_DECODED;
 }
 
 SYS_FUNC(sched_get_priority_min)
 {
-       if (entering(tcp)) {
-               printxval(schedulers, tcp->u_arg[0], "SCHED_???");
-       }
-       return 0;
+       printxval(schedulers, tcp->u_arg[0], "SCHED_???");
+
+       return RVAL_DECODED;
 }
 
 SYS_FUNC(sched_rr_get_interval)
 {
        if (entering(tcp)) {
-               tprintf("%ld, ", (long) (pid_t) tcp->u_arg[0]);
+               tprintf("%d, ", (int) tcp->u_arg[0]);
        } else {
                if (syserror(tcp))
-                       tprintf("%#lx", tcp->u_arg[1]);
+                       printaddr(tcp->u_arg[1]);
                else
                        print_timespec(tcp, tcp->u_arg[1]);
        }