OpenSolaris_b135/pkgdefs/common_files/i.sdconf_i386

#
# 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 2008 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
#ident	"%Z%%M%	%I%	%E% SMI"
#

PATH="/usr/bin:/usr/sbin:${PATH}"
export PATH

add_self_identifying_entry() {
cat >> $dest <<EOF

#
# The following stub node is needed for pathological bottom-up
# devid resolution on a self-identifying transport. 
#
name="sd" class="scsi-self-identifying";
EOF
}

while read src dest
do
	if [ ! -f $dest ] ; then
		cp $src $dest
	else
		#
		# remove entries for eol'ed blogic drivers
		# remove entries for eol'ed flashpt drivers
		#
		sed -e '/^name="sd" parent="blogic"$/N'	\
		-e '/^name="sd" parent="blogic" target=0 lun=0;$/d' \
		-e '/^name="sd" parent="blogic" target=1 lun=0;$/d' \
		-e '/^name="sd" parent="blogic" target=2 lun=0;$/d' \
		-e '/^name="sd" parent="blogic" target=3 lun=0;$/d' \
		-e '/^name="sd" parent="blogic" target=4 lun=0;$/d' \
		-e '/^name="sd" parent="blogic" target=5 lun=0;$/d' \
		-e '/^name="sd" parent="blogic" target=6 lun=0;$/d' \
		-e '/^name="sd" parent="blogic"\n	target=0 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=1 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=2 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=3 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=4 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=5 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=6 lun=0;$/N' \
		-e '/^name="sd" parent="blogic"\n	target=0 lun=0;\n$/d' \
		-e '/^name="sd" parent="blogic"\n	target=1 lun=0;\n$/d' \
		-e '/^name="sd" parent="blogic"\n	target=2 lun=0;\n$/d' \
		-e '/^name="sd" parent="blogic"\n	target=3 lun=0;\n$/d' \
		-e '/^name="sd" parent="blogic"\n	target=4 lun=0;\n$/d' \
		-e '/^name="sd" parent="blogic"\n	target=5 lun=0;\n$/d' \
		-e '/^name="sd" parent="blogic"\n	target=6 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt" target=0 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt" target=1 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt" target=2 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt" target=3 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt" target=4 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt" target=5 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt" target=6 lun=0;$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=0 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=1 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=2 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=3 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=4 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=5 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=6 lun=0;$/N' \
		-e '/^name="sd" parent="flashpt"\n	target=0 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=1 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=2 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=3 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=4 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=5 lun=0;\n$/d' \
		-e '/^name="sd" parent="flashpt"\n	target=6 lun=0;\n$/d' \
		-e '/^# Add SATA HBA drivers as parents of sd driver.$/d' \
		-e '/^name="sd" parent="nv_sata";$/d' \
		-e '/^name="sd" parent="ahci";$/d' \
		-e '/^name="sd" parent="si3124";$/d' \
		-e '/^name="sd" parent="marvell88sx";$/d' \
			$dest > /tmp/d2.$$

		if cmp -s $dest /tmp/d2.$$  > /dev/null 2>&1
		then
			: # Do not modify file unless changes are required.
		else
			cp /tmp/d2.$$ $dest
		fi
		echo `cat $dest` | grep "scsi-self-identifying" > /dev/null

		if [ $? -ne 0 ]; then
			add_self_identifying_entry
		fi
		# remove temporary file
		rm -f /tmp/d2.$$
	fi
done

exit 0