#!/bin/sh # Copyright (C) 2004-2005 Intel Corporation # MODULE="ipw2100" ENTRY="cfg" EREG="s#.define \(CFG_.*\) *BIT(\([^)]*\)).*#\1 \2#p" unset FILE for i in /sys/bus/pci/drivers/${MODULE}/*; do if [ -e "${i}/${ENTRY}" ]; then FILE="${i}/${ENTRY}" fi done if [ -z "${FILE}" ]; then echo "No '${ENTRY}' found in /sys/bus/pci/drivers/${MODULE}." return fi function bit() { VAL=1 for ((i = 0; i < $2; i++)); do VAL=$((VAL*2)) done SET="$((VAL & $3))" if [ "${SET}" = "0" ]; then SET=" " else SET="*" fi printf "%-20s\t\t0x%08X [%s] %d\n" $1 $VAL "$SET" $i } IFS=" " LEVELS=`sed -ne "${EREG}" ${MODULE}.h` VALUE=`cat ${FILE}` printf "%-20s\t\t%-10s Set Bit\n" "Description" "Hex" for i in $LEVELS; do IFS=" " bit $i $((${VALUE})) done printf "${ENTRY} = ${VALUE} (* = active)\n"