[dahdi-commits] tzafrir: linux/trunk r7964 - /linux/trunk/drivers/dahdi/xpp/xpp_debug

SVN commits to the DAHDI project dahdi-commits at lists.digium.com
Tue Jan 26 03:57:17 CST 2010


Author: tzafrir
Date: Tue Jan 26 03:57:14 2010
New Revision: 7964

URL: http://svnview.digium.com/svn/dahdi?view=rev&rev=7964
Log:
xpp_debug: a helper script to use debugging parameters with names.

(not intended to be installed)

Added:
    linux/trunk/drivers/dahdi/xpp/xpp_debug   (with props)

Added: linux/trunk/drivers/dahdi/xpp/xpp_debug
URL: http://svnview.digium.com/svn/dahdi/linux/trunk/drivers/dahdi/xpp/xpp_debug?view=auto&rev=7964
==============================================================================
--- linux/trunk/drivers/dahdi/xpp/xpp_debug (added)
+++ linux/trunk/drivers/dahdi/xpp/xpp_debug Tue Jan 26 03:57:14 2010
@@ -1,0 +1,110 @@
+#! /bin/sh
+#
+# xpp_debug: Turn on/off debugging flags via /sys/module/*/parameters/debug
+#
+
+modules="xpp xpp_usb xpd_fxs xpd_fxo xpd_bri xpd_pri"
+dbg_names="DEFAULT PCM LEDS SYNC SIGNAL PROC REGS DEVICES COMMANDS"
+
+usage() {
+	echo 1>&2 "Usage: $0 [module_name] [[-]flags...]"
+	echo 1>&2 "	module_name => $modules"
+	echo 1>&2 "	flags       => NONE $dbg_names ANY"
+	echo 1>&2 ""
+	echo 1>&2 "	Example: $0 xpp ANY -PCM -LEDS"
+	echo 1>&2 ""
+}
+
+sysfs_name() {
+	f=''
+	if [ -f "/sys/module/$1/parameters/debug" ]; then
+		f="/sys/module/$1/parameters/debug"
+	elif [ -f "/sys/module/$1/debug" ]; then
+		f="/sys/module/$1/debug"
+	fi
+	echo "$f"
+}
+
+sysfs_value() {
+	f=`sysfs_name "$1"`
+	if [ "$f" != "" ]; then
+		cat "$f"
+	fi
+}
+
+show_debug() {
+	usage
+	for i in $modules
+	do
+		f=`sysfs_name "$i"`
+		if [ -f "$f" ]; then
+			val=`cat $f`
+			j=0
+			list=''
+			for n in $dbg_names
+			do
+				if (( val & (1 << j) ))
+				then
+					list="$list $n"
+				fi
+				let j++
+			done
+			if [ "$list" = "" ]; then
+				list=' NONE'
+			fi
+			echo "$i	$list"
+		fi
+	done
+}
+
+calc_debug() {
+	val="$1"
+	shift
+	for wanted in $*
+	do
+		j=0
+		found=0
+		for n in $dbg_names
+		do
+			if [ "$wanted" = "$n" ]; then
+				(( val |= (1 << j) ))
+				found=1
+			elif [ "$wanted" = -"$n" ]; then
+				(( val &= ~(1 << j) ))
+				found=1
+			elif [ "$wanted" = "ANY" ]; then
+				(( val = ~0 ))
+				found=1
+			elif [ "$wanted" = -"ANY" -o "$wanted" = "NONE" ]; then
+				(( val = 0 ))
+				found=1
+			fi
+			let j++
+		done
+		if [ "$found" -eq 0 ]; then
+			echo >&2 "$0: Unkown debug flag '$wanted'"
+			exit 1
+		fi
+	done
+	echo $val
+}
+
+if [ "$#" = 0 ]; then
+	show_debug
+	exit 0
+fi
+
+module="$1"
+shift
+
+if ! echo "$modules" | grep -w "$module" > /dev/null; then
+	echo >&2 "$0: Unkown module $module"
+	exit 1
+fi
+
+oldval=`sysfs_value "$module"`
+val=`calc_debug "$oldval" $*`
+file=`sysfs_name $module`
+
+echo "$val" > "$file"
+show_debug

Propchange: linux/trunk/drivers/dahdi/xpp/xpp_debug
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: linux/trunk/drivers/dahdi/xpp/xpp_debug
------------------------------------------------------------------------------
    svn:executable = *

Propchange: linux/trunk/drivers/dahdi/xpp/xpp_debug
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Propchange: linux/trunk/drivers/dahdi/xpp/xpp_debug
------------------------------------------------------------------------------
    svn:mime-type = text/plain




More information about the dahdi-commits mailing list