#! /usr/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 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # # Driver info DRV=urtw DRVALIAS='"usb846,6a00" "usb1371,9401" "usb789,10c" "usb114b,150" "usbbda,8187" "usb769,11f2" "usb50d,705e" "usb846,4260" "usbbda,8189" "usbbda,8197" "usbbda,8198" "usbdf6,28"' BASEDIR=${BASEDIR:-/} # Function: check_add_drv() # # This function will check if add_drv has been executed. # If not simply calls add_drv. Otherwise adds entries to # driver_aliases, driver_classes and minor_perm if necessary. # The syntax of this function is the same as add_drv. check_add_drv() { CMD="add_drv" ALIAS="" ALIASDIR="${BASEDIR}"/etc/driver_aliases while getopts i:b: opt 2>/dev/null; do case "$opt" in i) CMD="${CMD} -i ${OPTARG}" ALIAS=`echo ${OPTARG} | /usr/bin/sed -e "s/'//g"` ;; b) if [ "${OPTARG}" != "/" ]; then # On a client # modify the sytem files and touch # /reconfigure for reconfigure reboot CMD="${CMD} -b \"${OPTARG}\"" fi ;; \?) echo "check_add_drv(): Unknown option $opt" return ;; esac done shift `/usr/bin/expr ${OPTIND} - 1` DRIVER=$1 CMD="${CMD} ${DRIVER}" # Make sure add_drv has not been previously executed # before attempting to add the driver /usr/bin/egrep -s "^${DRIVER}[ ]" "$BASEDIR"/etc/name_to_major if [ $? -ne 0 ]; then eval ${CMD} if [ $? -ne 0 ]; then echo "Failed add_drv ${DRIVER}!\n" >&2 exit 1 fi else # Add driver entry if necessary if [ -n "${ALIAS}" ]; then for i in ${ALIAS}; do /usr/bin/egrep -s "^${DRIVER}[ ]+$i" ${ALIASDIR} if [ $? -ne 0 ]; then echo "${DRIVER} $i" >> ${ALIASDIR} fi done fi fi } check_add_drv -b "${BASEDIR}" -i "'${DRVALIAS}'" ${DRV}