‰PNG  IHDR @ @ ªiqÞ pHYs   šœ —tEXtComment #! /bin/bash ############################################################################### # Conveniently create and set scsi logging level, show SCSI_LOG fields in human # readable form. # # (C) Copyright IBM Corp. 2006 # # Modified by D. Gilbert to replace the use of sysctl [20080218] ############################################################################### REVISION="1.0" 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 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 <>3)) LOG_TIMEOUT=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)) LOG_SCAN=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)) LOG_MLQUEUE=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)) LOG_MLCOMPLETE=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)) LOG_LLQUEUE=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)) LOG_LLCOMPLETE=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)) LOG_HLQUEUE=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)); LOG_HLCOMPLETE=$(($LEVEL & 7)); LEVEL=$(($LEVEL>>3)); LOG_IOCTL=$(($LEVEL & 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 echo $LEVEL > /proc/sys/dev/scsi/logging_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_IOCTL & 7)); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_HLCOMPLETE & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_HLQUEUE & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_LLCOMPLETE & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_LLQUEUE & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_MLCOMPLETE & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_MLQUEUE & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_SCAN & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_TIMEOUT & 7))); LEVEL=$(($LEVEL<<3)) LEVEL=$(($LEVEL|($LOG_ERROR & 7))) } 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