]> granicus.if.org Git - strace/commitdiff
process.c: move sched_setaffinity and sched_getaffinity 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 19:25:02 +0000 (19:25 +0000)
* affinity.c: New file.
* Makefile.am (strace_SOURCES): Add it.
* process.c (sys_sched_setaffinity, sys_sched_getaffinity): Move
to affinity.c.

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

index 2f5a8bff95af341c272546272c173649a186fc5e..1b6b77cedf6d6c53291f4a1d60dd03305d9ab84b 100644 (file)
@@ -18,6 +18,7 @@ include xlat/Makemodule.am
 
 strace_SOURCES =       \
        access.c        \
+       affinity.c      \
        aio.c           \
        bjm.c           \
        block.c         \
diff --git a/affinity.c b/affinity.c
new file mode 100644 (file)
index 0000000..97d8b3e
--- /dev/null
@@ -0,0 +1,57 @@
+#include "defs.h"
+
+static void
+print_affinitylist(struct tcb *tcp, long list, unsigned int len)
+{
+       int first = 1;
+       unsigned long w, min_len;
+
+       if (abbrev(tcp) && len / sizeof(w) > max_strlen)
+               min_len = len - max_strlen * sizeof(w);
+       else
+               min_len = 0;
+       for (; len >= sizeof(w) && len > min_len;
+            len -= sizeof(w), list += sizeof(w)) {
+               if (umove(tcp, list, &w) < 0)
+                       break;
+               if (first)
+                       tprints("{");
+               else
+                       tprints(", ");
+               first = 0;
+               tprintf("%lx", w);
+       }
+       if (len) {
+               if (first)
+                       tprintf("%#lx", list);
+               else
+                       tprintf(", %s}", (len >= sizeof(w) && len > min_len ?
+                               "???" : "..."));
+       } else {
+               tprints(first ? "{}" : "}");
+       }
+}
+
+int
+sys_sched_setaffinity(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               tprintf("%ld, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+               print_affinitylist(tcp, tcp->u_arg[2], tcp->u_arg[1]);
+       }
+       return 0;
+}
+
+int
+sys_sched_getaffinity(struct tcb *tcp)
+{
+       if (entering(tcp)) {
+               tprintf("%ld, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
+       } else {
+               if (tcp->u_rval == -1)
+                       tprintf("%#lx", tcp->u_arg[2]);
+               else
+                       print_affinitylist(tcp, tcp->u_arg[2], tcp->u_rval);
+       }
+       return 0;
+}
index 28fbd42b26948f268f9325aa024ff83e9a2db9ef..998e1713a597467c897e3d3ffe0857b2f9955f4f 100644 (file)
--- a/process.c
+++ b/process.c
@@ -2203,62 +2203,6 @@ sys_futex(struct tcb *tcp)
        return 0;
 }
 
-static void
-print_affinitylist(struct tcb *tcp, long list, unsigned int len)
-{
-       int first = 1;
-       unsigned long w, min_len;
-
-       if (abbrev(tcp) && len / sizeof(w) > max_strlen)
-               min_len = len - max_strlen * sizeof(w);
-       else
-               min_len = 0;
-       for (; len >= sizeof(w) && len > min_len;
-            len -= sizeof(w), list += sizeof(w)) {
-               if (umove(tcp, list, &w) < 0)
-                       break;
-               if (first)
-                       tprints("{");
-               else
-                       tprints(", ");
-               first = 0;
-               tprintf("%lx", w);
-       }
-       if (len) {
-               if (first)
-                       tprintf("%#lx", list);
-               else
-                       tprintf(", %s}", (len >= sizeof(w) && len > min_len ?
-                               "???" : "..."));
-       } else {
-               tprints(first ? "{}" : "}");
-       }
-}
-
-int
-sys_sched_setaffinity(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               tprintf("%ld, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
-               print_affinitylist(tcp, tcp->u_arg[2], tcp->u_arg[1]);
-       }
-       return 0;
-}
-
-int
-sys_sched_getaffinity(struct tcb *tcp)
-{
-       if (entering(tcp)) {
-               tprintf("%ld, %lu, ", tcp->u_arg[0], tcp->u_arg[1]);
-       } else {
-               if (tcp->u_rval == -1)
-                       tprintf("%#lx", tcp->u_arg[2]);
-               else
-                       print_affinitylist(tcp, tcp->u_arg[2], tcp->u_rval);
-       }
-       return 0;
-}
-
 int
 sys_get_robust_list(struct tcb *tcp)
 {