]> granicus.if.org Git - strace/blobdiff - proc.c
Add argument to tprint_iov() specifying whether to decode each iovec
[strace] / proc.c
diff --git a/proc.c b/proc.c
index 57521440ca47e5bbe39906d430dafc2560981d54..1fe4890952f7bdbee7e7cc9651c0042b3fe53bcc 100644 (file)
--- a/proc.c
+++ b/proc.c
@@ -87,9 +87,7 @@ static const struct xlat proc_run_flags[] = {
 };
 
 int
-proc_ioctl(tcp, code, arg)
-struct tcb *tcp;
-int code, arg;
+proc_ioctl(struct tcb *tcp, int code, int arg)
 {
        int val;
        prstatus_t status;
@@ -110,8 +108,7 @@ int code, arg;
                        tprintf(", {...}");
                else {
                        tprintf(", {pr_flags=");
-                       if (!printflags(proc_status_flags, status.pr_flags))
-                               tprintf("0");
+                       printflags(proc_status_flags, status.pr_flags, "PR_???");
                        if (status.pr_why) {
                                tprintf(", pr_why=");
                                printxval(proc_status_why, status.pr_why,
@@ -142,8 +139,7 @@ int code, arg;
                        tprintf(", {...}");
                else {
                        tprintf(", {pr_flags=");
-                       if (!printflags(proc_run_flags, run.pr_flags))
-                               tprintf("0");
+                       printflags(proc_run_flags, run.pr_flags, "PR???");
                        tprintf(", ...}");
                }
                return 1;
@@ -154,8 +150,7 @@ int code, arg;
                        tprintf(", [?]");
                else {
                        tprintf(", [");
-                       if (!printflags(proc_status_flags, val))
-                               tprintf("0");
+                       printflags(proc_status_flags, val, "PR_???");
                        tprintf("]");
                }
                return 1;
@@ -206,9 +201,7 @@ static const struct xlat proc_status_flags[] = {
 };
 
 int
-proc_ioctl(tcp, code, arg)
-struct tcb *tcp;
-int code, arg;
+proc_ioctl(struct tcb *tcp, int code, int arg)
 {
        int val;
        struct procfs_status status;
@@ -227,41 +220,31 @@ int code, arg;
                        tprintf(", {...}");
                else {
                        tprintf(", {state=%d, flags=", status.state);
-                       if (!printflags(proc_status_flags, status.flags))
-                               tprintf("0");
+                       printflags(proc_status_flags, status.flags, "PF_???");
                        tprintf(", events=");
-                       printflags(proc_status_why, status.events);
+                       printflags(proc_status_why, status.events, "S_???");
                        tprintf(", why=");
                        printxval(proc_status_why, status.why, "S_???");
                        tprintf(", val=%lu}", status.val);
                }
                return 1;
        case PIOCBIS:
-               if (arg) {
-                       tprintf(", ");
-                       printflags(proc_status_why, arg);
-               } else
-                       tprintf(", 0");
+               tprintf(", ");
+               printflags(proc_status_why, arg, "S_???");
                return 1;
                return 1;
        case PIOCSFL:
-               if (arg) {
-                       tprintf(", ");
-                       printflags(proc_status_flags, arg);
-               } else
-                       tprintf(", 0");
+               tprintf(", ");
+               printflags(proc_status_flags, arg, "PF_???");
                return 1;
        case PIOCGFL:
-               if (syserror(tcp))
+               if (syserror(tcp))
                        tprintf(", %#x", arg);
                else if (umove(tcp, arg, &val) < 0)
                        tprintf(", {...}");
                else {
                        tprintf(", [");
-                       if (val)
-                               printflags(proc_status_flags, val);
-                       else
-                               tprintf("0");
+                       printflags(proc_status_flags, val, "PF_???");
                        tprintf("]");
                }
                return 1;