#!/bin/sh
#
#ident	"@(#)postinstall	1.10	09/06/08 SMI"
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#

PATH="/usr/bin:/usr/sbin:$PATH"; export PATH

# Driver definitions
DRVR_NAME=qlc
DRVR_PERM="-m '* 0600 root sys'"
DRVR_CLASS="-c fibre-channel"
DRVR_ALIASES_sparc="-i '\"pci1077,2200\" \"pci1077,2300\" \"pci1077,2312\" \"pci1077,2422\" \"pciex1077,2432\" \"pciex1077,2532\" \"pciex1077,5432\" \"pciex1077,8001\"'"
DRVR_ALIASES_i386="-i '\"pci1077,2200\" \"pci1077,2300\" \"pci1077,2312\" \"pci1077,132\" \"pci1077,2422\" \"pciex1077,2432\" \"pciex1077,2532\" \"pciex1077,5432\" \"pciex1077,8001\"'"

HARDWARE_STRING_sparc="SUNW,qlc|pci1077,2422|pciex1077,2432|pciex1077,2532|pciex1077,5432|pciex1077,8001"
HARDWARE_STRING_i386="SUNW,qlc|pci1077,132|pci1077,2422|pciex1077,2432|pciex1077,2532|pciex1077,5432|pciex1077,8001"

if [ ${ARCH} = "sparc" ]; then
	DRVR_ALIASES=$DRVR_ALIASES_sparc
	HARDWARE_STRING=$HARDWARE_STRING_sparc
elif [ ${ARCH} = "i386" ]; then
	DRVR_ALIASES=$DRVR_ALIASES_i386
	HARDWARE_STRING=$HARDWARE_STRING_i386
else
	echo "\n$0 Failed: ${ARCH} is not supported.\n" >&2
fi

if [ -z "${BASEDIR}" ]; then
	echo "\n$0 Failed: BASEDIR is not set.\n" >&2
	exit 1
fi

# Remove existing definition, if it exists. 
/usr/sbin/rem_drv -b "${BASEDIR}" ${DRVR_NAME} > /dev/null 2>&1

# Check for hardware
prtconf -pv | egrep "${HARDWARE_STRING}" > /dev/null 2>&1
if [ $? -eq 0 ]; then
	# Hardware is present, attach the drivers
	ADD_DRV="add_drv -b ${BASEDIR}"
else
	# No hardware found on the system
	ADD_DRV="add_drv -n -b ${BASEDIR}"
fi

eval ${ADD_DRV} "${DRVR_PERM}" ${DRVR_CLASS} "${DRVR_ALIASES}" ${DRVR_NAME}
if [ $? -ne 0 ]; then
	echo "\nCommand Failed:\n${ADD_DRV} "${DRVR_PERM}" ${DRVR_CLASS} \
		"${DRVR_ALIASES}" ${DRVR_NAME}\n" >&2
	exit 1
fi

exit 0
