postinstall revision a72f7ea693101cc48bafbb4db6bb437d828011c4
68bcde9c52e9e749482df2800dbdff09559115e0chuck#! /usr/bin/sh
68bcde9c52e9e749482df2800dbdff09559115e0chuck#
68bcde9c52e9e749482df2800dbdff09559115e0chuck# CDDL HEADER START
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski#
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski# The contents of this file are subject to the terms of the
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski# Common Development and Distribution License (the "License").
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski# You may not use this file except in compliance with the License.
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski#
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
c1635d9f723f28fed4b95e5d9693e554a79e8d77orlikowski# or http://www.opensolaris.org/os/licensing.
4f7dd0949d92462a8adc31eee8aff266eea55204chuck# See the License for the specific language governing permissions
4f7dd0949d92462a8adc31eee8aff266eea55204chuck# and limitations under the License.
4f7dd0949d92462a8adc31eee8aff266eea55204chuck#
4f7dd0949d92462a8adc31eee8aff266eea55204chuck# When distributing Covered Code, include this CDDL HEADER in each
4f7dd0949d92462a8adc31eee8aff266eea55204chuck# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck# If applicable, add the following below this CDDL HEADER, with the
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck# fields enclosed by brackets "[]" replaced with your own identifying
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck# information: Portions Copyright [yyyy] [name of copyright owner]
4f7dd0949d92462a8adc31eee8aff266eea55204chuck#
75b3ed55173b29dbdf9e2fb6ec5462bfceee21aechuck# CDDL HEADER END
68bcde9c52e9e749482df2800dbdff09559115e0chuck#
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck#
68bcde9c52e9e749482df2800dbdff09559115e0chuck# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
68bcde9c52e9e749482df2800dbdff09559115e0chuck# Use is subject to license terms.
68bcde9c52e9e749482df2800dbdff09559115e0chuck#
68bcde9c52e9e749482df2800dbdff09559115e0chuck# ident "%Z%%M% %I% %E% SMI"
68bcde9c52e9e749482df2800dbdff09559115e0chuck#
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck# Driver info
68bcde9c52e9e749482df2800dbdff09559115e0chuckDRV=rtw
68bcde9c52e9e749482df2800dbdff09559115e0chuckDRVALIAS='"pci10ec,8180"'
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckBASEDIR=${BASEDIR:-/}
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck# Function: check_add_drv()
68bcde9c52e9e749482df2800dbdff09559115e0chuck#
68bcde9c52e9e749482df2800dbdff09559115e0chuck# This function will check if add_drv has been executed.
68bcde9c52e9e749482df2800dbdff09559115e0chuck# If not simply calls add_drv. Otherwise adds entries to
68bcde9c52e9e749482df2800dbdff09559115e0chuck# driver_aliases, driver_classes and minor_perm if necessary.
68bcde9c52e9e749482df2800dbdff09559115e0chuck# The syntax of this function is the same as add_drv.
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckcheck_add_drv()
68bcde9c52e9e749482df2800dbdff09559115e0chuck{
68bcde9c52e9e749482df2800dbdff09559115e0chuck CMD="add_drv"
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck ALIAS=""
68bcde9c52e9e749482df2800dbdff09559115e0chuck ALIASDIR="${BASEDIR}"/etc/driver_aliases
68bcde9c52e9e749482df2800dbdff09559115e0chuck while getopts i:b: opt 2>/dev/null; do
68bcde9c52e9e749482df2800dbdff09559115e0chuck case "$opt" in
68bcde9c52e9e749482df2800dbdff09559115e0chuck i) CMD="${CMD} -i ${OPTARG}"
68bcde9c52e9e749482df2800dbdff09559115e0chuck ALIAS=`echo ${OPTARG} | /usr/bin/sed -e "s/'//g"`
68bcde9c52e9e749482df2800dbdff09559115e0chuck ;;
68bcde9c52e9e749482df2800dbdff09559115e0chuck b) if [ "${OPTARG}" != "/" ]; then
68bcde9c52e9e749482df2800dbdff09559115e0chuck # On a client
68bcde9c52e9e749482df2800dbdff09559115e0chuck # modify the sytem files and touch
68bcde9c52e9e749482df2800dbdff09559115e0chuck # /reconfigure for reconfigure reboot
68bcde9c52e9e749482df2800dbdff09559115e0chuck CMD="${CMD} -b \"${OPTARG}\""
68bcde9c52e9e749482df2800dbdff09559115e0chuck fi
68bcde9c52e9e749482df2800dbdff09559115e0chuck ;;
68bcde9c52e9e749482df2800dbdff09559115e0chuck \?) echo "check_add_drv(): Unknown option $opt"
68bcde9c52e9e749482df2800dbdff09559115e0chuck return
68bcde9c52e9e749482df2800dbdff09559115e0chuck ;;
68bcde9c52e9e749482df2800dbdff09559115e0chuck esac
68bcde9c52e9e749482df2800dbdff09559115e0chuck done
68bcde9c52e9e749482df2800dbdff09559115e0chuck shift `/usr/bin/expr ${OPTIND} - 1`
68bcde9c52e9e749482df2800dbdff09559115e0chuck DRIVER=$1
68bcde9c52e9e749482df2800dbdff09559115e0chuck CMD="${CMD} ${DRIVER}"
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck # Make sure add_drv has not been previously executed
68bcde9c52e9e749482df2800dbdff09559115e0chuck # before attempting to add the driver
68bcde9c52e9e749482df2800dbdff09559115e0chuck /usr/bin/egrep -s "^${DRIVER}[ ]" "$BASEDIR"/etc/name_to_major
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuck if [ $? -ne 0 ]; then
68bcde9c52e9e749482df2800dbdff09559115e0chuck eval ${CMD}
68bcde9c52e9e749482df2800dbdff09559115e0chuck if [ $? -ne 0 ]; then
68bcde9c52e9e749482df2800dbdff09559115e0chuck echo "Failed add_drv ${DRIVER}!\n" >&2
68bcde9c52e9e749482df2800dbdff09559115e0chuck exit 1
68bcde9c52e9e749482df2800dbdff09559115e0chuck fi
68bcde9c52e9e749482df2800dbdff09559115e0chuck else
68bcde9c52e9e749482df2800dbdff09559115e0chuck # Add driver entry if necessary
68bcde9c52e9e749482df2800dbdff09559115e0chuck if [ -n "${ALIAS}" ]; then
68bcde9c52e9e749482df2800dbdff09559115e0chuck for i in ${ALIAS}; do
68bcde9c52e9e749482df2800dbdff09559115e0chuck /usr/bin/egrep -s "^${DRIVER}[ ]+$i" ${ALIASDIR}
68bcde9c52e9e749482df2800dbdff09559115e0chuck if [ $? -ne 0 ]; then
68bcde9c52e9e749482df2800dbdff09559115e0chuck echo "${DRIVER} $i" >> ${ALIASDIR}
68bcde9c52e9e749482df2800dbdff09559115e0chuck fi
68bcde9c52e9e749482df2800dbdff09559115e0chuck done
68bcde9c52e9e749482df2800dbdff09559115e0chuck fi
68bcde9c52e9e749482df2800dbdff09559115e0chuck fi
68bcde9c52e9e749482df2800dbdff09559115e0chuck}
68bcde9c52e9e749482df2800dbdff09559115e0chuck
68bcde9c52e9e749482df2800dbdff09559115e0chuckcheck_add_drv -b "${BASEDIR}" -i "'${DRVALIAS}'" ${DRV}
68bcde9c52e9e749482df2800dbdff09559115e0chuck