#! /bin/sh # Copyright (C) 2006 Randy Dunlap # GPL version 2 license. # prints 'modinfo -p' for all found *.ko files # prints 'modinfo' (all) for all found *.ko files if -a is specified; # prints all MODULE_PARM_DESC lines for all *.c files if -s is specified; allinfo="" sources="" while getopts "aosh" Option ; do case $Option in a) allinfo="1" ;; s) sources="1" ;; o) sources="" ;; h|*) echo "usage: module-params [-a] [-s] [-o] [-h]" echo "lists module parameter info for all found files:" echo " -s searches source (.c) files" echo " -o searches binary (.ko) files [default]" echo " -a lists all modinfo output from .ko files" echo " (else just -p: module parameters output)" echo " -h prints this help text" exit ;; esac done ##echo shifting args by: $(($OPTIND - 1)) shift $(($OPTIND - 1)) if [ "$allinfo" == "1" ]; then modinfo_param="" else modinfo_param="-p" # module parameters only fi if [ "$sources" == "1" ]; then filenames=$(find . -name \*\.c) else filenames=$(find . -name \*\.ko) fi for file in $filenames ; do if [ "$sources" == "1" ]; then grep -sq -w MODULE_PARM_DESC $file sts=$? if [ $sts -eq 0 ]; then if [ ${file:0:2} == "./" ]; then file=${file:2} fi echo "$file:" grep -w MODULE_PARM_DESC $file | \ sed -e s/MODULE_PARM_DESC[[:space:]]*\(// | \ sed -e s/"\"[[:space:]]*)[[:space:]]*;[[:space:]]*$"// | sed -e s/","/": "/ | sed -e s/'"$'/''/ | sed -e s/'\\$'/''/ | sed -e s/'\\n$'/''/ | sed -e s/'\\t'/' '/g | sed -e s/'\\n'/': '/g | sed -e s/'\\'/''/g | sed -e s/'__MODULE_STRING'/''/g | sed -e s/":[[:space:]]*\""/": "/ echo "-------------------------------------------------" fi else # object modules info=`modinfo $modinfo_param $file` if [ "$info" != "" ]; then # don't repeat filename if [ "$allinfo" != "1" ]; then echo "$file:" fi modinfo $modinfo_param $file | sed -e s/":"/": "/g echo "-------------------------------------------------" fi fi done