postinstall revision a1db70cab63f1d10b1d656d17785337a3b9d4882
698N/A#!/sbin/sh
698N/A#
698N/A# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
698N/A# Use is subject to license terms.
698N/A#
698N/A# ident "%Z%%M% %I% %E% SMI"
698N/A#
698N/A
698N/A# Function: check_add_drv()
698N/A#
698N/A# This function will check if the module has an entry in etc/name_to_major
698N/A# If not simply calls add_drv with the arguments given. If there is
698N/A# such an entry in name_to_major file, it adds entries in driver_aliases
698N/A# driver_classes and minor_perm if necessary.
698N/A# The syntax of this function is the same as add_drv.
698N/A
698N/Acheck_add_drv()
698N/A{
698N/A if [ "$BASEDIR" = "" ]
698N/A then
698N/A BASEDIR=/
698N/A fi
698N/A alias=""
698N/A class=""
698N/A ADD_ALIAS=0
698N/A ADD_CLASS=0
698N/A ADD_MINOR=0
698N/A OPTIND=1
698N/A IS_NET_DRIVER=0
844N/A
844N/A cmd="add_drv"
698N/A
1258N/A #amr driver do not support LSI 320-2x card - "pci1000,532"
698N/A /usr/bin/sed -e /amr\ \"pci1000,532\"/d $BASEDIR/etc/driver_aliases > /tmp/tmpfile
698N/A cp /tmp/tmpfile $BASEDIR/etc/driver_aliases
698N/A rm -f /tmp/tmpfile
698N/A
698N/A NO_CMD=
698N/A while getopts i:b:m:c:N opt
698N/A do
698N/A case $opt in
698N/A N ) NO_CMD=1;;
698N/A i ) ADD_ALIAS=1
698N/A alias=$OPTARG
698N/A cmd=$cmd" -i '$alias'"
698N/A ;;
698N/A m ) ADD_MINOR=1
698N/A minor=$OPTARG
698N/A cmd=$cmd" -m '$minor'"
698N/A ;;
698N/A c) ADD_CLASS=1
698N/A class=$OPTARG
698N/A cmd=$cmd" -c $class"
698N/A ;;
698N/A b) BASEDIR=$OPTARG
698N/A cmd=$cmd" -b $BASEDIR"
698N/A ;;
698N/A \?) echo "check_add_drv can not handle this option"
698N/A return
698N/A ;;
esac
done
shift `/usr/bin/expr $OPTIND - 1`
drvname=$1
cmd=$cmd" "$drvname
drvname=`echo $drvname | /usr/bin/sed 's;.*/;;g'`
/usr/bin/grep "^$drvname[ ]" $BASEDIR/etc/name_to_major > /dev/null 2>&1
if [ "$NO_CMD" = "" -a $? -ne 0 ]
then
eval $cmd
else
# entry already in name_to_major, add alias, class, minorperm
# if necessary
if [ $ADD_ALIAS = 1 ]
then
for i in $alias
do
/usr/bin/egrep "^$drvname[ ]+$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "$drvname $i" >> $BASEDIR/etc/driver_aliases
fi
done
fi
if [ $ADD_CLASS = 1 ]
then
/usr/bin/egrep "^$drvname[ ]+$class( | |$)" $BASEDIR/etc/driver_classes > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "$drvname\t$class" >> $BASEDIR/etc/driver_classes
fi
fi
if [ $ADD_MINOR = 1 ]
then
/usr/bin/grep "^$drvname:" $BASEDIR/etc/minor_perm > /dev/null 2>&1
if [ $? -ne 0 ]
then
minorentry="$drvname:$minor"
echo $minorentry >> $BASEDIR/etc/minor_perm
fi
fi
fi
}
check_add_drv -i '"pci1028,e" "pci1028,f" "pci1028,493" "pci1028,518" "pci1028,520"' -b "$BASEDIR" -c scsi amr