aboutsummaryrefslogtreecommitdiff
path: root/archive/o_scsi_logging_level
diff options
context:
space:
mode:
Diffstat (limited to 'archive/o_scsi_logging_level')
-rwxr-xr-xarchive/o_scsi_logging_level295
1 files changed, 0 insertions, 295 deletions
diff --git a/archive/o_scsi_logging_level b/archive/o_scsi_logging_level
deleted file mode 100755
index ecbc8277..00000000
--- a/archive/o_scsi_logging_level
+++ /dev/null
@@ -1,295 +0,0 @@
-#! /bin/bash
-###############################################################################
-# Conveniently create and set scsi logging level, show SCSI_LOG fields in human
-# readable form.
-#
-# Copyright (C) IBM Corp. 2006
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or (at
-# your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
-###############################################################################
-
-# Contributed by Andreas Herrmann <aherrman@de.ibm.com> 2006/08/18
-
-SCRIPTNAME="scsi_logging_level"
-
-declare -i LOG_ERROR=0
-declare -i LOG_TIMEOUT=0
-declare -i LOG_SCAN=0
-declare -i LOG_MLQUEUE=0
-declare -i LOG_MLCOMPLETE=0
-declare -i LOG_LLQUEUE=0
-declare -i LOG_LLCOMPLETE=0
-declare -i LOG_HLQUEUE=0
-declare -i LOG_HLCOMPLETE=0
-declare -i LOG_IOCTL=0
-
-declare -i LEVEL=0
-
-_ERROR_SHIFT=0
-_TIMEOUT_SHIFT=3
-_SCAN_SHIFT=6
-_MLQUEUE_SHIFT=9
-_MLCOMPLETE_SHIFT=12
-_LLQUEUE_SHIFT=15
-_LLCOMPLETE_SHIFT=18
-_HLQUEUE_SHIFT=21
-_HLCOMPLETE_SHIFT=24
-_IOCTL_SHIFT=27
-
-SET=0
-GET=0
-CREATE=0
-
-OPTS=`getopt -o hvcgsa:E:T:S:I:M:L:H: --long \
-help,version,create,get,set,all:,error:,timeout:,scan:,ioctl:,\
-midlevel:,mlqueue:,mlcomplete:,lowlevel:,llqueue:,llcomplete:,\
-highlevel:,hlqueue:,hlcomplete: -n \'$SCRIPTNAME\' -- "$@"`
-eval set -- "$OPTS"
-
-# print version info
-printversion()
-{
- cat <<EOF
-$SCRIPTNAME (s390-tools) %S390_TOOLS_VERSION%
-(C) Copyright IBM Corp. 2006
-EOF
-}
-
-# print usage and help
-printhelp()
-{
- cat <<EOF
-Usage: $SCRIPTNAME [OPTIONS]
-
-Create, get or set scsi logging level.
-
-Options:
-
- -h, --help print this help
- -v, --version print version information
- -s, --set create and set logging level as specified on
- command line
- -g, --get get current logging level and display it
- -c, --create create logging level as specified on command line
- -a, --all specify value for all SCSI_LOG fields
- -E, --error specify SCSI_LOG_ERROR
- -T, --timeout specify SCSI_LOG_TIMEOUT
- -S, --scan specify SCSI_LOG_SCAN
- -M, --midlevel specify SCSI_LOG_MLQUEUE and SCSI_LOG_MLCOMPLETE
- --mlqueue specify SCSI_LOG_MLQUEUE
- --mlcomplete specify SCSI_LOG_MLCOMPLETE
- -L, --lowlevel specify SCSI_LOG_LLQUEUE and SCSI_LOG_LLCOMPLETE
- --llqueue specify SCSI_LOG_LLQUEUE
- --llcomplete specify SCSI_LOG_LLCOMPLETE
- -H, --highlevel specify SCSI_LOG_HLQUEUE and SCSI_LOG_HLCOMPLETE
- --hlqueue specify SCSI_LOG_HLQUEUE
- --hlcomplete specify SCSI_LOG_HLCOMPLETE
- -I, --ioctl specify SCSI_LOG_IOCTL
-
-Exactly one of the options "-c", "-g" and "-s" has to be specified.
-Valid values for SCSI_LOG fields are integers from 0 to 7.
-
-Note: Several SCSI_LOG fields can be specified using several options.
-When multiple options specify same SCSI_LOG field the most specific
-option has precedence.
-
-Example: "scsi_logging_level --hlqueue 3 --hlcomplete 2 --all 1 -s" sets
-SCSI_LOG_HLQUEUE=3, SCSI_LOG_HLCOMPLETE=2 and assigns all other SCSI_LOG
-fields the value 1.
-EOF
-}
-
-check_level()
-{
-# something is wrong with the following if ... dpg 20061027
-# if [ `echo -n $1 | tr --complement [:digit:] 'a' | grep -s 'a'` ]
-# then
-# invalid_cmdline "log level '$1' out of range [0, 7]"
-# fi
-
- if [ $1 -lt 0 -o $1 -gt 7 ]
- then
- invalid_cmdline "log level '$1' out of range [0, 7]"
- fi
-}
-
-# check cmd line arguments
-check_cmdline()
-{
- while true ; do
- case "$1" in
- -a|--all) _ALL=$2; check_level $2
- shift 2;;
- -c|--create) CREATE=1;
- shift 1;;
- -g|--get) GET=1
- shift 1;;
- -h|--help) printhelp
- exit 0;;
- -s|--set) SET=1
- shift 1;;
- -v|--version) printversion
- exit 0;;
- -E|--error) _ERROR=$2; check_level $2
- shift 2;;
- -T|--timeout) _TIMEOUT=$2; check_level $2
- shift 2;;
- -S|--scan) _SCAN=$2; check_level $2
- shift 2;;
- -M|--midlevel) _ML=$2; check_level $2
- shift 2;;
- --mlqueue) _MLQUEUE=$2; check_level $2
- shift 2;;
- --mlcomplete) _MLCOMPLETE=$2; check_level $2
- shift 2;;
- -L|--lowlevel) _LL=$2; check_level $2
- shift 2;;
- --llqueue) _LLQUEUE=$2; check_level $2
- shift 2;;
- --llcomplete) _LLCOMPLETE=$2; check_level $2
- shift 2;;
- -H|--highlevel) _HL=$2; check_level $2
- shift 2;;
- --hlqueue) _HLQUEUE=$2; check_level $2
- shift 2;;
- --hlcomplete) _HLCOMPLETE=$2; check_level $2
- shift 2;;
- -I|--ioctl) _IOCTL=$2; check_level $2
- shift 2;;
- --) shift; break;;
- *) echo "Internal error!" ; exit 1;;
- esac
- done
-
- if [ -n "$*" ]
- then
- invalid_cmdline invalid parameter $*
- fi
-
- if [ $GET = "1" -a $SET = "1" ]
- then
- invalid_cmdline options \'-c\', \'-g\' and \'-s\' are mutual exclusive
- elif [ $GET = "1" -a $CREATE = "1" ]
- then
- invalid_cmdline options \'-c\', \'-g\' and \'-s\' are mutual exclusive
- elif [ $SET = "1" -a $CREATE = "1" ]
- then
- invalid_cmdline options \'-c\', \'-g\' and \'-s\' are mutual exclusive
- fi
-
- LOG_ERROR=${_ERROR:-${_ALL:-0}}
- LOG_TIMEOUT=${_TIMEOUT:-${_ALL:-0}}
- LOG_SCAN=${_SCAN:-${_ALL:-0}}
- LOG_MLQUEUE=${_MLQUEUE:-${_ML:-${_ALL:-0}}}
- LOG_MLCOMPLETE=${_MLCOMPLETE:-${_ML:-${_ALL:-0}}}
- LOG_LLQUEUE=${_LLQUEUE:-${_LL:-${_ALL:-0}}}
- LOG_LLCOMPLETE=${_LLCOMPLETE:-${_LL:-${_ALL:-0}}}
- LOG_HLQUEUE=${_HLQUEUE:-${_HL:-${_ALL:-0}}}
- LOG_HLCOMPLETE=${_HLCOMPLETE:-${_HL:-${_ALL:-0}}}
- LOG_IOCTL=${_IOCTL:-${_ALL:-0}}
-}
-
-invalid_cmdline()
-{
- echo "$SCRIPTNAME: $*"
- echo "$SCRIPTNAME: Try '$SCRIPTNAME --help' for more information."
- exit 1
-}
-
-get_logging_level()
-{
- echo "Current scsi logging level:"
- LEVEL=`sysctl -n dev.scsi.logging_level`
- if [ $? != 0 ]
- then
- echo "$SCRIPTNAME: could not read scsi logging level" \
- "(kernel probably without SCSI_LOGGING support)"
- exit 1
- fi
-}
-
-show_logging_level()
-{
- echo "dev.scsi.logging_level = $LEVEL"
-
- LOG_ERROR=$((($LEVEL>>$_ERROR_SHIFT) & 7))
- LOG_TIMEOUT=$((($LEVEL>>$_TIMEOUT_SHIFT) & 7))
- LOG_SCAN=$((($LEVEL>>$_SCAN_SHIFT) & 7))
- LOG_MLQUEUE=$((($LEVEL>>$_MLQUEUE_SHIFT) & 7))
- LOG_MLCOMPLETE=$((($LEVEL>>$_MLCOMPLETE_SHIFT) & 7))
- LOG_LLQUEUE=$((($LEVEL>>$_LLQUEUE_SHIFT) & 7))
- LOG_LLCOMPLETE=$((($LEVEL>>$_LLCOMPLETE_SHIFT) & 7))
- LOG_HLQUEUE=$((($LEVEL>>$_HLQUEUE_SHIFT) & 7))
- LOG_HLCOMPLETE=$((($LEVEL>>$_HLCOMPLETE_SHIFT) & 7))
- LOG_IOCTL=$((($LEVEL>>$_IOCTL_SHIFT) & 7))
-
- echo "SCSI_LOG_ERROR=$LOG_ERROR"
- echo "SCSI_LOG_TIMEOUT=$LOG_TIMEOUT"
- echo "SCSI_LOG_SCAN=$LOG_SCAN"
- echo "SCSI_LOG_MLQUEUE=$LOG_MLQUEUE"
- echo "SCSI_LOG_MLCOMPLETE=$LOG_MLCOMPLETE"
- echo "SCSI_LOG_LLQUEUE=$LOG_LLQUEUE"
- echo "SCSI_LOG_LLCOMPLETE=$LOG_LLCOMPLETE"
- echo "SCSI_LOG_HLQUEUE=$LOG_HLQUEUE"
- echo "SCSI_LOG_HLCOMPLETE=$LOG_HLCOMPLETE"
- echo "SCSI_LOG_IOCTL=$LOG_IOCTL"
-}
-
-set_logging_level()
-{
- echo "New scsi logging level:"
- sysctl -q -w dev.scsi.logging_level=$LEVEL
- if [ $? != 0 ]
- then
- echo "$SCRIPTNAME: could not write scsi logging level" \
- "(kernel probably without SCSI_LOGGING support)"
- exit 1
- fi
-}
-
-create_logging_level()
-{
- LEVEL=$((($LOG_ERROR & 7)<<$_ERROR_SHIFT))
- LEVEL=$(($LEVEL|(($LOG_TIMEOUT & 7)<<$_TIMEOUT_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_SCAN & 7)<<$_SCAN_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_MLQUEUE & 7)<<$_MLQUEUE_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_MLCOMPLETE & 7)<<$_MLCOMPLETE_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_LLQUEUE & 7)<<$_LLQUEUE_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_LLCOMPLETE & 7)<<$_LLCOMPLETE_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_HLQUEUE & 7)<<$_HLQUEUE_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_HLCOMPLETE & 7)<<$_HLCOMPLETE_SHIFT)))
- LEVEL=$(($LEVEL|(($LOG_IOCTL & 7)<<$_IOCTL_SHIFT)))
-}
-
-check_cmdline $*
-
-if [ $SET = "1" ]
-then
- create_logging_level
- set_logging_level
- show_logging_level
-elif [ $GET = "1" ]
-then
- get_logging_level
- show_logging_level
-elif [ $CREATE = "1" ]
-then
- create_logging_level
- show_logging_level
-else
- invalid_cmdline missing option \'-g\', \'-s\' or \'-c\'
-fi
-