]> granicus.if.org Git - strace/commitdiff
process.c: move sched_* parsers to a separate file
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 11 Dec 2014 19:25:02 +0000 (19:25 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Thu, 11 Dec 2014 21:44:56 +0000 (21:44 +0000)
* sched.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* process.c: Move sys_sched_getscheduler, sys_sched_setscheduler,
sys_sched_getparam, sys_sched_setparam, sys_sched_get_priority_min,
sys_sched_rr_get_interval, and related code to sched.c.

Makefile.am
process.c
sched.c [new file with mode: 0644]

index 1b6b77cedf6d6c53291f4a1d60dd03305d9ab84b..f72fd076b2eea9973394d2ae11f663febd6e17de 100644 (file)
@@ -67,6 +67,7 @@ strace_SOURCES =      \
        reboot.c        \
        renameat.c      \
        resource.c      \
+       sched.c         \
        scsi.c          \
        signal.c        \
        sock.c          \
index 998e1713a597467c897e3d3ffe0857b2f9955f4f..ea73594df0324cc29efe369339439004c85afb0a 100644 (file)
--- a/process.c
+++ b/process.c
@@ -90,7 +90,6 @@
 # define FUTEX_REQUEUE 3
 #endif
 
-#include <sched.h>
 #include <asm/posix_types.h>
 #undef GETGROUPS_T
 #define GETGROUPS_T __kernel_gid_t
@@ -2230,84 +2229,3 @@ sys_get_robust_list(struct tcb *tcp)
        }
        return 0;
 }
-
-#include "xlat/schedulers.h"
-
-int
-sys_sched_getscheduler(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               tprintf("%d", (int) tcp->u_arg[0]);
-       } else if (!syserror(tcp)) {
-               tcp->auxstr = xlookup(schedulers, tcp->u_rval);
-               if (tcp->auxstr != NULL)
-                       return RVAL_STR;
-       }
-       return 0;
-}
-
-int
-sys_sched_setscheduler(struct tcb *tcp)
-{
-       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;
-}
-
-int
-sys_sched_getparam(struct tcb *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);
-       }
-       return 0;
-}
-
-int
-sys_sched_setparam(struct tcb *tcp)
-{
-       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;
-}
-
-int
-sys_sched_get_priority_min(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               printxval(schedulers, tcp->u_arg[0], "SCHED_???");
-       }
-       return 0;
-}
-
-int
-sys_sched_rr_get_interval(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               tprintf("%ld, ", (long) (pid_t) tcp->u_arg[0]);
-       } else {
-               if (syserror(tcp))
-                       tprintf("%#lx", tcp->u_arg[1]);
-               else
-                       print_timespec(tcp, tcp->u_arg[1]);
-       }
-       return 0;
-}
diff --git a/sched.c b/sched.c
new file mode 100644 (file)
index 0000000..d3192fa
--- /dev/null
+++ b/sched.c
@@ -0,0 +1,84 @@
+#include "defs.h"
+
+#include <sched.h>
+
+#include "xlat/schedulers.h"
+
+int
+sys_sched_getscheduler(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               tprintf("%d", (int) tcp->u_arg[0]);
+       } else if (!syserror(tcp)) {
+               tcp->auxstr = xlookup(schedulers, tcp->u_rval);
+               if (tcp->auxstr != NULL)
+                       return RVAL_STR;
+       }
+       return 0;
+}
+
+int
+sys_sched_setscheduler(struct tcb *tcp)
+{
+       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;
+}
+
+int
+sys_sched_getparam(struct tcb *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);
+       }
+       return 0;
+}
+
+int
+sys_sched_setparam(struct tcb *tcp)
+{
+       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;
+}
+
+int
+sys_sched_get_priority_min(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               printxval(schedulers, tcp->u_arg[0], "SCHED_???");
+       }
+       return 0;
+}
+
+int
+sys_sched_rr_get_interval(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               tprintf("%ld, ", (long) (pid_t) tcp->u_arg[0]);
+       } else {
+               if (syserror(tcp))
+                       tprintf("%#lx", tcp->u_arg[1]);
+               else
+                       print_timespec(tcp, tcp->u_arg[1]);
+       }
+       return 0;
+}