postinstall revision 219cee9902d4b39537cab8150b824193026e40c8
#! /bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#ident "%Z%%M% %I% %E% SMI"
#
# SUNWagp postinstall script
PATH=/usr/bin:/usr/sbin:${PATH}
export PATH
BRALIAS="\
\"pci8086,7124\" \
\"pci8086,7122\" \
\"pci8086,7120\" \
\"pci1022,7454\" \
\"pci8086,3580\" \
\"pci8086,3575\" \
\"pci8086,2560\" \
\"pci8086,2570\" \
\"pci8086,2580\" \
\"pci8086,2590\" \
\"pci8086,2770\" \
\"pci8086,27a0\" \
\"pci8086,2970\" \
\"pci8086,2980\" \
\"pci8086,2990\" \
\"pci8086,29a0\" \
\"pci8086,29b0\" \
\"pci8086,29c0\" \
\"pci8086,29d0\" \
\"pci8086,2a00\" \
\"pci8086,2a10\" \
\"pci8086,2a40\" \
\"pci8086,1130\" \
"
CPUGART='"pci1022,1103"'
DRVPERM='* 0644 root sys'
# Function: check_add_drv()
#
# This function will check if the module has an entry in etc/name_to_major
# If not simply calls add_drv with the arguments given. If there is
# such an entry in name_to_major file, it adds entries in driver_aliases
# and minor_perm if necessary.
# The syntax of this function is the same as add_drv.
check_add_drv()
{
alias=""
ADD_ALIAS=0
ADD_MINOR=0
OPTIND=1
cmd="add_drv"
while getopts i:b:m: opt
do
case $opt in
i ) ADD_ALIAS=1
alias=$OPTARG
cmd=$cmd" -i '$alias'"
;;
m ) ADD_MINOR=1
minor=$OPTARG
cmd=$cmd" -m '$minor'"
;;
b) BASEDIR=$OPTARG
cmd=$cmd" -b $BASEDIR"
;;
\?) echo "check_add_drv can not handle this option"
return
;;
esac
done
shift `/usr/bin/expr $OPTIND - 1`
drvname=$1
cmd=$cmd" "$drvname
/usr/bin/grep "^$drvname[ ]" $BASEDIR/etc/name_to_major > /dev/null 2>&1
if [ $? -ne 0 ]
then
eval $cmd
else
# entry already in name_to_major, add alias, minorperm
# if necessary
if [ $ADD_ALIAS = 1 ]
then
for i in $alias
do
/usr/bin/egrep "$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1
if [ $? -ne 0 ]
then
echo "$drvname $i" >> $BASEDIR/etc/driver_aliases
else
/usr/bin/egrep "^$drvname[ ]+$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1
if [ $? -ne 0 ]
then
return 1
fi
fi
done
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
}
EXIT=0
if [ "${BASEDIR:=/}" = "/" ]
then
ADD_DRV="check_add_drv"
else
ADD_DRV="check_add_drv -b ${BASEDIR}"
fi
${ADD_DRV} -m "${DRVPERM}" -i "${BRALIAS}" agptarget || EXIT=1
# amd64_gart is only needed in AMD64 system
${ADD_DRV} -m "${DRVPERM}" -i "${CPUGART}" amd64_gart || EXIT=1
${ADD_DRV} -m "${DRVPERM}" agpgart || EXIT=1
exit ${EXIT}