preinstall revision 7c478bd95313f5f23a4c958a745db2134aa03244
#! /bin/sh
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (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
#
#
#pragma ident "%Z%%M% %I% %E% SMI"
#
# Copyright (c) 1999,2001 by Sun Microsystems, Inc.
# All rights reserved.
#
PATH="/usr/bin:/usr/sbin:${PATH}"
export PATH
DEVLINKTB=${BASEDIR}/etc/devlink.tab
TMP=/tmp/$$
#
# remove_minor - removes minor node in /dev for passed driver
#
# Usage: remove_minor {driver_name}
#
remove_minor()
{
DRIVER="$1"
DEVNODE="${BASEDIR}/dev/${DRIVER}"
rm -f $DEVNODE
}
#
# rem_devlink - removes an entry from ${DEVLINKTB}
#
rem_devlink()
{
PATTERN="$1"
LINK="$2"
PLINK="`echo $LINK | sed 's/[$*^|\]/\\\&/g'`"
grep -v "^$PATTERN $PLINK$" ${DEVLINKTB} >$TMP.devlink
cp $TMP.devlink ${DEVLINKTB}
rm -f $TMP.devlink
}
#
# Remove the existing ${BASEDIR}/devices/pcmcia directory since
# we will recreate the appropriate directories when the
# PCMCIA user daemon loads
#
rm -rf ${BASEDIR}/devices/pcmcia
#
# We remove any dangling /dev links in this order:
#
# SPARC:
# /dev/stp4020
# /dev/pem
#
# x86:
# /dev/ra
# /dev/pcic
# /dev/pem
#
case "${ARCH}" in
sparc)
remove_minor stp4020
;;
i386)
remove_minor ra
remove_minor pcic
;;
esac
remove_minor pem
#
# remove all traces of the former pcmcia nexus. This allows upgrade
# to work and not leave the system unbootable
#
grep pcmcia ${BASEDIR}/etc/name_to_major >/dev/null &&
rem_drv -b ${BASEDIR} pcmcia
[ -c ${BASEDIR}/dev/pcmcia ] && rm -f ${BASEDIR}/dev/pcmcia
#
# make sure we don't have left over /dev/ra, /dev/pcic or /dev/stp4020
#
[ ! -h ${BASEDIR}/dev/ra ] && rm -f ${BASEDIR}/dev/ra
[ ! -h ${BASEDIR}/dev/pcic ] && rm -f ${BASEDIR}/dev/pcic
[ ! -h ${BASEDIR}/dev/stp4020 ] && rm -f ${BASEDIR}/dev/stp4020
#
# remove devlinks
#
rem_devlink 'type=ddi_nexus;minor=initpcmcia' 'pcmcia/\N0'
rem_devlink 'type=ddi_nexus;minor=probepcmcia' 'pcmcia/probe_\N0'
rem_devlink 'type=ddi_ctl:devctl;minor=initpcmcia' 'pcmcia/\N0'
rem_devlink 'type=ddi_ctl:devctl;minor=probepcmcia' 'pcmcia/probe_\N0'
exit 0