svn commit: r286860 - head/usr.bin/truss

John Baldwin jhb at FreeBSD.org
Mon Aug 17 19:08:49 UTC 2015


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: {


More information about the svn-src-head mailing list