postinstall revision 1ae0874509b6811fdde1dfd46f0d93fd09867a3f
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews# CDDL HEADER START
fb84f9014321c5f33c4682de5661b579fcde318fAndreas Gustafsson# The contents of this file are subject to the terms of the
fb84f9014321c5f33c4682de5661b579fcde318fAndreas Gustafsson# Common Development and Distribution License (the "License").
fb84f9014321c5f33c4682de5661b579fcde318fAndreas Gustafsson# You may not use this file except in compliance with the License.
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews# and limitations under the License.
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews# When distributing Covered Code, include this CDDL HEADER in each
af5073d03288a53b646ec3b807ac25ced64d7879Mark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
fb84f9014321c5f33c4682de5661b579fcde318fAndreas Gustafsson# If applicable, add the following below this CDDL HEADER, with the
8dc5d5e460da15b2481893687cad7e5b72d0314aAutomatic Updater# fields enclosed by brackets "[]" replaced with your own identifying
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright 2006 Sun Microsystems, Inc. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use is subject to license terms.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# ident "%Z%%M% %I% %E% SMI"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Function: check_add_drv()
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# This function will check if the module has an entry in etc/name_to_major
7329012471d165cd3dc4180ad2a0a43de91e7f01Mark Andrews# If not simply calls add_drv with the arguments given. If there is
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# such an entry in name_to_major file, it adds entries in driver_aliases
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# driver_classes and minor_perm if necessary.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The syntax of this function is the same as add_drv.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein while getopts i:b:m:c:N opt
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein \?) echo "check_add_drv can not handle this option"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein drvname=`echo $drvname | /usr/bin/sed 's;.*/;;g'`
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /usr/bin/grep "^$drvname[ ]" $BASEDIR/etc/name_to_major > /dev/null 2>&1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # entry already in name_to_major, add alias, class, minorperm
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /usr/bin/egrep "^$drvname[ ]+$i" $BASEDIR/etc/driver_aliases>/dev/null 2>&1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if [ $? -ne 0 ]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "$drvname $i" >> $BASEDIR/etc/driver_aliases
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /usr/bin/egrep "^$drvname[ ]+$class( | |$)" $BASEDIR/etc/driver_classes > /dev/null 2>&1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if [ $? -ne 0 ]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein echo "$drvname\t$class" >> $BASEDIR/etc/driver_classes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein /usr/bin/grep "^$drvname:" $BASEDIR/etc/minor_perm > /dev/null 2>&1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein if [ $? -ne 0 ]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-channel-devices"' cnex
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-console-concentrator"' vcc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-disk"' vdc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-disk-server"' vds
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-channel"' vldc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-network"' vnet
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeincheck_add_drv -b "${BASEDIR}" -i '"SUNW,sun4v-network-switch"' vsw