Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 Jan 2016 09:54:14 +0000 (UTC)
From:      Peter Holm <pho@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r294906 - user/pho/stress2/misc
Message-ID:  <201601270954.u0R9sEOE095624@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pho
Date: Wed Jan 27 09:54:13 2016
New Revision: 294906
URL: https://svnweb.freebsd.org/changeset/base/294906

Log:
  Rewrite argument parsing. Update external syscall exclude handling.
  
  Sponsored by:	EMC / Isilon Storage Division

Modified:
  user/pho/stress2/misc/syscall5.sh

Modified: user/pho/stress2/misc/syscall5.sh
==============================================================================
--- user/pho/stress2/misc/syscall5.sh	Wed Jan 27 07:42:11 2016	(r294905)
+++ user/pho/stress2/misc/syscall5.sh	Wed Jan 27 09:54:13 2016	(r294906)
@@ -37,33 +37,26 @@
 
 syscall=`grep SYS_MAXSYSCALL /usr/include/sys/syscall.h | awk '{print $NF}'`
 syscall=$((syscall - 1))
+uname -a | grep -q OneFS &&
+    syscall=`sysctl kern.syscalls | grep -v nosys | grep : | tail -1 | \
+    sed 's/:.*//'`
 
-args=`getopt ars:t: $*`
-[ $? -ne 0 ] && echo "Usage $0 [-a] [-r] [-s number] [-t seconds]" && exit 1
-set -- $args
 last=/tmp/syscall5.last
 log=/tmp/syscall5.log
-for i; do
-	case "$i" in
-	-a)	all=1		# Test all syscalls
-		shift
-		;;
-	-r)	[ -h $last ] &&
-			syscall=`ls -l $last | awk '{print $NF}'`
-			syscall=$((syscall - 1))
-		shift
-		;;
-	-s)	syscall=$2
-		shift; shift
-		;;
-	-t)	sleeptime=$2
-		export sleeptime=$((sleeptime / 10))	# used in syscall4.sh
-		shift; shift
-		;;
-	--)
-		shift
-		break
-		;;
+
+while getopts ars:t:u flag; do
+	case "$flag" in
+	a) all=1 ;;
+	r) [ -h $last ] &&
+	       syscall=`ls -l $last | awk '{print $NF}'`
+	       syscall=$((syscall - 1))
+	   ;;
+	s) syscall="$OPTARG" ;;
+	t) sleeptime="$OPTARG"
+	   export sleeptime=$((sleeptime / 10))	;; # used in syscall4.sh
+	u) unnamed=1 ;;
+	*) echo "Usage $0 [-a] [-r] [-s number] [-t seconds] [-u]"
+	   return 1 ;;
 	esac
 done
 
@@ -83,12 +76,15 @@ while [ $n -gt 0 ]; do
 	ln -fs $n $last
 	name=`grep -w "$n$" /usr/include/sys/syscall.h | awk '{print $2}' |
 		sed 's/SYS_//'`
+	[ -z "$name" -a -n "$unnamed" ] &&
+		{ n=$((n - 1)); continue; }
 	[ -z "$name" ] && name="unknown"
-	if [ -x ../tools/exclude_syscall.sh ]; then
-		name=`../tools/exclude_syscall.sh $n`
-		[ $name = "Excluded" ] &&
-		    { n=$((n - 1)); continue; }
-	fi
+	rm -f /tmp/syscall5.name
+	[ -x ../tools/exclude_syscall.sh ] &&
+	    ../tools/exclude_syscall.sh $n &&
+	    { n=$((n - 1)); continue; }
+	[ "$name" = "unknown" ] && [ -f /tmp/syscall5.name ] &&
+	    name=`cat /tmp/syscall5.name`
 	echo "`date '+%T'` syscall $n ($name)"
 	echo "`date '+%T'` syscall $n ($name)"  >> $log
 	printf "`date '+%T'` syscall $n ($name)\r\n" > /dev/console



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201601270954.u0R9sEOE095624>