i.sdconf_i386 revision 247f8eaa502d3244b05aa230214295f0f1067c59
#!/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
#
#
#ident "%Z%%M% %I% %E% SMI"
#
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
PATH="/usr/bin:/usr/sbin:${PATH}"
export PATH
add_sata_entry() {
cat >> $dest << EOF
name="sd" parent="$1";
EOF
}
while read src dest
do
if [ ! -f $dest ] ; then
cp $src $dest
else
# update the SCCS id
grep '^#pragma ident[ ]*"@(#)sd.conf' $src \
> /tmp/newident.$$ 2>/dev/null
egrep -v '^#(pragma ident|ident)[ ]*"@\(#\)sd.conf' \
$dest > /tmp/rest.$$ 2>/dev/null
cat /tmp/newident.$$ /tmp/rest.$$ > /tmp/d.$$
#
# 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' \
/tmp/d.$$ > /tmp/d2.$$
if cmp -s /tmp/d.$$ /tmp/d2.$$ > /dev/null 2>&1
then
: # Do not modify file unless changes are required.
else
cp /tmp/d2.$$ $dest
fi
# Add SATA HBA driver entries if not present
line1="name=\"sd\" parent=\"nv_sata\";"
echo `cat $dest` | grep "$line1" >/dev/null
if [ $? -ne 0 ]; then
add_sata_entry "nv_sata"
fi
line1="name=\"sd\" parent=\"ahci\";"
echo `cat $dest` | grep "$line1" >/dev/null
if [ $? -ne 0 ]; then
add_sata_entry "ahci"
fi
line1="name=\"sd\" parent=\"si3124\";"
echo `cat $dest` | grep "$line1" >/dev/null
if [ $? -ne 0 ]; then
add_sata_entry "si3124"
fi
line1="name=\"sd\" parent=\"marvell88sx\";"
echo `cat $dest` | grep "$line1" >/dev/null
if [ $? -ne 0 ]; then
add_sata_entry "marvell88sx"
fi
# remove temporary files
rm -f /tmp/d.$$ /tmp/d2.$$ /tmp/newident.$$ /tmp/rest.$$
fi
done
exit 0