Author: jhb
Date: Mon Aug 17 19:08:48 2015
New Revision: 286860
URL: https://svnweb.freebsd.org/changeset/base/286860

Log:
  Use an xlat table and xlookup() instead of a home-rolled version for the
  sigprocmask operation type.

Modified:
  head/usr.bin/truss/syscalls.c

Modified: head/usr.bin/truss/syscalls.c
==============================================================================
--- head/usr.bin/truss/syscalls.c       Mon Aug 17 19:06:14 2015        
(r286859)
+++ head/usr.bin/truss/syscalls.c       Mon Aug 17 19:08:48 2015        
(r286860)
@@ -555,6 +555,11 @@ static struct xlat linux_socketcall_ops[
        XEND
 };
 
+static struct xlat sigprocmask_ops[] = {
+       X(SIG_BLOCK) X(SIG_UNBLOCK) X(SIG_SETMASK)
+       XEND
+};
+
 #undef X
 #undef XEND
 
@@ -1096,15 +1101,7 @@ print_arg(struct syscall_args *sc, unsig
                break;
        }
        case Sigprocmask: {
-               switch (args[sc->offset]) {
-#define        S(a)    case a: tmp = strdup(#a); break;
-                       S(SIG_BLOCK);
-                       S(SIG_UNBLOCK);
-                       S(SIG_SETMASK);
-#undef S
-               }
-               if (tmp == NULL)
-                       asprintf(&tmp, "0x%lx", args[sc->offset]);
+               tmp = strdup(xlookup(sigprocmask_ops, args[sc->offset]));
                break;
        }
        case Fcntlflag: {
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to