scripts to check capi stuff against a kernel.
This commit is contained in:
parent
cc3077b26e
commit
974aabdb12
|
@ -0,0 +1,249 @@
|
|||
#!/bin/sh
|
||||
|
||||
KERNELDIR=/usr/src/Linux-Kernel/v2.2.18-pre9
|
||||
KERNELDIR=/usr/src/Linux-Kernel/v2.2.17-pre5
|
||||
KERNELDIR=/usr/src/Linux-Kernel/v2.2.15
|
||||
KERNELDIR=/usr/src/linux
|
||||
DOCP=docpd
|
||||
PREPARSER="./preparser"
|
||||
UNIQUE=false
|
||||
VERBOSE=false
|
||||
NOTEST=true
|
||||
|
||||
docpd() {
|
||||
if ! cmp -s $1 $2 ; then
|
||||
if $NOTEST ; then
|
||||
echo Copying $1 ...
|
||||
mkdir -p `dirname $2`
|
||||
cp $1 $2
|
||||
else
|
||||
echo $1 was changed
|
||||
fi
|
||||
else
|
||||
if $VERBOSE ; then
|
||||
echo $2 is up to date, NOT converted
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
docp() {
|
||||
if [ $1 -nt $2 -o ! -f $2 ] ; then
|
||||
if $NOTEST ; then
|
||||
echo Copying $1 ...
|
||||
mkdir -p `dirname $2`
|
||||
cp $1 $2
|
||||
else
|
||||
echo $1 was changed
|
||||
fi
|
||||
else
|
||||
if $VERBOSE ; then
|
||||
echo $2 is up to date, NOT converted
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
docpuni() {
|
||||
if $VERBOSE ; then
|
||||
echo -n "Processing $1 ... "
|
||||
fi
|
||||
TMPNAME=/tmp/`basename $1`.$$
|
||||
$PREPARSER -c $CTRLNAME $1 $TMPNAME
|
||||
RES=$?
|
||||
if [ "$RES" -eq "0" ] ; then
|
||||
if ! cmp -s $1 $2 ; then
|
||||
if $NOTEST ; then
|
||||
if $VERBOSE ; then
|
||||
echo copying original
|
||||
else
|
||||
echo "Processing $1 ... copying original"
|
||||
fi
|
||||
mkdir -p `dirname $2`
|
||||
cp $1 $2
|
||||
else
|
||||
if $VERBOSE ; then
|
||||
echo original was changed
|
||||
else
|
||||
echo "Processing $1 ... original was changed"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if $VERBOSE ; then
|
||||
echo original file is up to date
|
||||
fi
|
||||
fi
|
||||
rm $TMPNAME
|
||||
return 0
|
||||
fi
|
||||
if [ "$RES" -eq "2" ] ; then
|
||||
if ! cmp -s $TMPNAME $2 ; then
|
||||
if $NOTEST ; then
|
||||
if $VERBOSE ; then
|
||||
echo copying modified
|
||||
else
|
||||
echo "Processing $1 ... copying modified"
|
||||
fi
|
||||
mkdir -p `dirname $2`
|
||||
cp $TMPNAME $2
|
||||
else
|
||||
if $VERBOSE ; then
|
||||
echo modified was changed
|
||||
else
|
||||
echo "Processing $1 ... modified was changed"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
if $VERBOSE ; then
|
||||
echo modified file is up to date
|
||||
fi
|
||||
fi
|
||||
rm $TMPNAME
|
||||
return 0
|
||||
fi
|
||||
echo
|
||||
echo "problem with $PREPARSER retcode $RES"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Print usage and exit
|
||||
#
|
||||
usage() {
|
||||
cat<<EOM
|
||||
|
||||
std2kern is used for updating your kernel-tree from within
|
||||
this directory.
|
||||
|
||||
std2kern [-d] [-h] [-k DIR] [-v] [-u] [-c FILE] [files ...]
|
||||
|
||||
Options:
|
||||
|
||||
-h This Text.
|
||||
-d Copy depends on modification date instead of file-compare.
|
||||
-k DIR Kerneltree is in DIR instead of /usr/src/linux
|
||||
-v More mesages about processing
|
||||
-u Make a diff for a unique kernel-tree
|
||||
(preprocessing with $PREPARSER)
|
||||
-c FILE Use FILE as control file for $PREPARSER (only with -u)
|
||||
-t Test, don't really copy files
|
||||
|
||||
Without any files given, within the whole tree, the "right"
|
||||
files are copied. When any files are given in the commandline,
|
||||
only those are copied.
|
||||
|
||||
EOM
|
||||
exit
|
||||
}
|
||||
|
||||
#
|
||||
# Check, if argument is a linux kernel dir
|
||||
#
|
||||
checkkernel() {
|
||||
if [ -f $1/Makefile ] ; then
|
||||
if [ "`grep ^vmlinux: $1/Makefile | grep vmlinux`" != "" ] ; then
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
echo "The given argument does not look like a kernel dir"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# Determine a control file name
|
||||
#
|
||||
calc_ctrl_file() {
|
||||
eval `sed -n 's/^\([A-Z]*\) = \([0-9]*\)$/\1=\2/p' $KERNELDIR/Makefile`
|
||||
echo "Current kernel version is $VERSION.$PATCHLEVEL.$SUBLEVEL"
|
||||
if [ -z "$CTRLNAME" ] ; then
|
||||
CTRLNAME=v$VERSION.$PATCHLEVEL.$SUBLEVEL.ctrl
|
||||
if [ -f $CTRLNAME ] ; then
|
||||
return 0
|
||||
fi
|
||||
CTRLNAME=v$VERSION.$PATCHLEVEL.ctrl
|
||||
if [ -f $CTRLNAME ] ; then
|
||||
return 0
|
||||
fi
|
||||
CTRLNAME=default.ctrl
|
||||
fi
|
||||
if [ -f $CTRLNAME ] ; then
|
||||
return 0
|
||||
fi
|
||||
echo "No control file found"
|
||||
exit 1
|
||||
}
|
||||
|
||||
while getopts :dhk:uc:vt a ; do
|
||||
case $a in
|
||||
\?) case $OPTARG in
|
||||
k) echo "-k requires Kernel directory parameter"
|
||||
;;
|
||||
*) echo "Unknown option: -$OPTARG"
|
||||
echo "Try std2kern -h"
|
||||
;;
|
||||
esac
|
||||
exit 1
|
||||
;;
|
||||
k) checkkernel $OPTARG
|
||||
KERNELDIR=$OPTARG
|
||||
;;
|
||||
c) CTRLNAME=$OPTARG
|
||||
;;
|
||||
u) UNIQUE=true
|
||||
;;
|
||||
v) VERBOSE=true
|
||||
;;
|
||||
t) NOTEST=false
|
||||
;;
|
||||
d) DOCP=docp
|
||||
;;
|
||||
h) usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift `expr $OPTIND - 1`
|
||||
|
||||
if $UNIQUE ; then
|
||||
DOCP=docpuni
|
||||
calc_ctrl_file
|
||||
fi
|
||||
|
||||
echo -n "Using $DOCP"
|
||||
|
||||
if $UNIQUE ; then
|
||||
echo " with controlfile $CTRLNAME"
|
||||
else
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ $# != 0 ]; then
|
||||
for i in $* ; do
|
||||
$DOCP $i $KERNELDIR/$i
|
||||
done
|
||||
else
|
||||
for i in drivers/isdn/avmb1/*.[ch] ; do
|
||||
$DOCP $i $KERNELDIR/$i
|
||||
done
|
||||
for i in \
|
||||
include/linux/kernelcapi.h \
|
||||
include/linux/capi.h \
|
||||
include/linux/b1lli.h \
|
||||
include/linux/b1pcmcia.h \
|
||||
; do
|
||||
$DOCP $i $KERNELDIR/$i
|
||||
done
|
||||
for i in drivers/isdn/avmb1/Makefile; do
|
||||
if [ -f $i.kernel ] ; then
|
||||
if $UNIQUE ; then
|
||||
docpd $i.kernel $KERNELDIR/$i
|
||||
else
|
||||
$DOCP $i.kernel $KERNELDIR/$i
|
||||
fi
|
||||
else
|
||||
if $UNIQUE ; then
|
||||
docpd $i $KERNELDIR/$i
|
||||
else
|
||||
$DOCP $i $KERNELDIR/$i
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
|
@ -0,0 +1,170 @@
|
|||
#!/bin/sh
|
||||
|
||||
|
||||
KERNELDIR=/usr/src/linux
|
||||
KERNFIRST=false
|
||||
PREPARSER="./preparser"
|
||||
DODIFF=dodiff
|
||||
UNIQUE=false
|
||||
|
||||
dodiff() {
|
||||
if $KERNFIRST ; then
|
||||
diff -u -bB $EXTRAOPT $2 $1
|
||||
else
|
||||
diff -u -bB $EXTRAOPT $1 $2
|
||||
fi
|
||||
}
|
||||
|
||||
dodiffuni() {
|
||||
echo -n "Processing $1 ... "
|
||||
TMPNAME=/tmp/`basename $1`.$$
|
||||
$PREPARSER -c $CTRLNAME $1 $TMPNAME
|
||||
RES=$?
|
||||
if [ "$RES" -eq "0" ] ; then
|
||||
echo diff original
|
||||
dodiff $1 $2
|
||||
rm $TMPNAME
|
||||
return 0
|
||||
fi
|
||||
if [ "$RES" -eq "2" ] ; then
|
||||
echo diff modified
|
||||
dodiff $TMPNAME $2
|
||||
rm $TMPNAME
|
||||
return 0
|
||||
fi
|
||||
echo "problem with $PREPARSER retcode $RES"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
#
|
||||
# Print usage and exit
|
||||
#
|
||||
usage() {
|
||||
cat<<EOM
|
||||
|
||||
stddiff is used for generating diffs of the cvs-tree
|
||||
versus the kernel-tree.
|
||||
|
||||
stddiff [-r] [-h] [-k DIR] [-u] [-c FILE] [-w] [files ...]
|
||||
|
||||
Options:
|
||||
|
||||
-h This Text.
|
||||
-r Reverse direction (kernel versus cvs).
|
||||
-k DIR Kerneltree is in DIR instead of /usr/src/linux
|
||||
-u Make a diff for a unique kernel-tree
|
||||
(preprocessing with $PREPARSER)
|
||||
-c FILE Use FILE as control file for $PREPARSER (only with -u)
|
||||
-w Ignore white space when comparing lines
|
||||
|
||||
Without any files given, within the whole tree, the "right"
|
||||
files are diffed. When any files are given in the commandline,
|
||||
only those are diffed.
|
||||
|
||||
EOM
|
||||
exit
|
||||
}
|
||||
|
||||
#
|
||||
# Check, if argument is a linux kernel dir
|
||||
#
|
||||
checkkernel() {
|
||||
if [ -f $1/Makefile ] ; then
|
||||
if [ "`grep ^vmlinux: $1/Makefile | grep vmlinux`" != "" ] ; then
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
echo "The given argument does not look like a kernel dir"
|
||||
exit 1
|
||||
}
|
||||
|
||||
#
|
||||
# Determine a control file name
|
||||
#
|
||||
calc_ctrl_file() {
|
||||
eval `sed -n 's/^\([A-Z]*\) = \([0-9]*\)$/\1=\2/p' $KERNELDIR/Makefile`
|
||||
echo "Current kernel version is $VERSION.$PATCHLEVEL.$SUBLEVEL"
|
||||
if [ -z "$CTRLNAME" ] ; then
|
||||
CTRLNAME=v$VERSION.$PATCHLEVEL.$SUBLEVEL.ctrl
|
||||
if [ -f $CTRLNAME ] ; then
|
||||
return 0
|
||||
fi
|
||||
CTRLNAME=v$VERSION.$PATCHLEVEL.ctrl
|
||||
if [ -f $CTRLNAME ] ; then
|
||||
return 0
|
||||
fi
|
||||
CTRLNAME=default.ctrl
|
||||
fi
|
||||
if [ -f $CTRLNAME ] ; then
|
||||
return 0
|
||||
fi
|
||||
echo "No control file found"
|
||||
exit 1
|
||||
}
|
||||
|
||||
while getopts :rhk:uc:w a ; do
|
||||
case $a in
|
||||
\?) case $OPTARG in
|
||||
k) echo "-k requires Kernel directory parameter"
|
||||
;;
|
||||
*) echo "Unknown option: -$OPTARG"
|
||||
echo "Try stddiff -h"
|
||||
;;
|
||||
esac
|
||||
exit 1
|
||||
;;
|
||||
k) checkkernel $OPTARG
|
||||
KERNELDIR=$OPTARG
|
||||
;;
|
||||
c) CTRLNAME=$OPTARG
|
||||
;;
|
||||
u) UNIQUE=true
|
||||
;;
|
||||
r) KERNFIRST=true
|
||||
;;
|
||||
w) EXTRAOPT=-w
|
||||
;;
|
||||
h) usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
shift `expr $OPTIND - 1`
|
||||
|
||||
if $UNIQUE ; then
|
||||
DODIFF=dodiffuni
|
||||
calc_ctrl_file
|
||||
fi
|
||||
|
||||
echo -n "Using $DODIFF $EXTRAOPT"
|
||||
|
||||
if $UNIQUE ; then
|
||||
echo " with controlfile $CTRLNAME"
|
||||
else
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ $# != 0 ]; then
|
||||
for i in $* ; do
|
||||
$DODIFF $i $KERNELDIR/$i
|
||||
done
|
||||
else
|
||||
for i in drivers/isdn/avmb1/*.[ch] ; do
|
||||
$DODIFF $i $KERNELDIR/$i
|
||||
done
|
||||
for i in \
|
||||
include/linux/kernelcapi.h \
|
||||
include/linux/capi.h \
|
||||
include/linux/b1lli.h \
|
||||
include/linux/b1pcmcia.h \
|
||||
; do
|
||||
$DODIFF $i $KERNELDIR/$i
|
||||
done
|
||||
for i in drivers/isdn/avmb1/Makefile ; do
|
||||
if [ -f $i.kernel ] ; then
|
||||
dodiff $i.kernel $KERNELDIR/$i
|
||||
else
|
||||
dodiff $i $KERNELDIR/$i
|
||||
fi
|
||||
done
|
||||
fi
|
Loading…
Reference in New Issue