#! /bin/sh
#
#
# Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# This script cleans up /etc/driver_aliases, /etc/driver_classes
# and /etc/name_to_major.
#
#

PATCHDB=$ROOTDIR/var/sadm/patch
OS=`uname -r`


if [ ! -f $ROOTDIR/kernel/drv/qlc ]; then
        $ROOTDIR/usr/sbin/rem_drv -b $ROOTDIR qlc
fi

###
#
#
#
# Restore san_drivers file

Tmpf=/tmp/sand_$$
Sav=${ROOTDIR}/var/sadm/pkg/SUNWsan/${PatchNum}.sav
Dst=${ROOTDIR}/opt/SUNWsan/etc/san_drivers

grep -v \:${PatchNum}\$ $Dst > $Tmpf
mv $Tmpf $Dst

cat $Sav >> $Dst
rm $Sav

# Remove the 2GB QLC entries from /etc/driver_aliases

QLC2GB=$PATCHDB/$PatchNum/qlc23xx
REMV_QLC23XX_SUP=${REMV_QLC23XX_SUP:-"true"}

if [ $OS -eq "5.8" ]; then
  QLC_PATCH=111097
  VERSION=09
elif [ $OS -eq "5.9" ]; then
  QLC_PATCH=113042
  VERSION=02
fi

if [ -r $QLC2GB ]; then
  . $QLC2GB
  rm $QLC2GB
else
  # Check for earlier versions that support 2 GB
  for patch in `showrev -p | grep "$QLC_PATCH" | awk '{print $2}' | \
    grep "$QLC_PATCH" | sort -r`
  do
    rel=`echo $patch | cut -d'-' -f2`
    if [ $rel -ge "$VERSION" ]; then
      REMV_QLC23XX_SUP="false"
      break
    fi
  done

fi

if [ ${REMV_QLC23XX_SUP} = "true" ]; then

  TMPFILE=/tmp/driver_aliases_$$
  DRV_ALIAS=$ROOTDIR/etc/driver_aliases
  qlc2300='qlc "pci1077,2300"'
  qlc2312='qlc "pci1077,2312"'

  egrep "$qlc2300|$qlc2312" $DRV_ALIAS > /dev/null 2>&1
  if [ $? -eq 0 ]; then
    sed "s/$qlc2312//; s/$qlc2300//; /^$/d" $DRV_ALIAS > $TMPFILE
    if [ $? -eq 0 ]; then
      mv $TMPFILE $DRV_ALIAS
    else
      echo "Removal of $qlc2312 and $qlc2300 from $DRV_ALIAS Failed"
    fi
  fi
fi


exit 0
