1 #! /bin/sh
2 #
3 # CDDL HEADER START
4 #
5 # The contents of this file are subject to the terms of the
6 # Common Development and Distribution License (the "License").
7 # You may not use this file except in compliance with the License.
8 #
9 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 # or http://www.opensolaris.org/os/licensing.
11 # See the License for the specific language governing permissions
12 # and limitations under the License.
13 #
14 # When distributing Covered Code, include this CDDL HEADER in each
15 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 # If applicable, add the following below this CDDL HEADER, with the
17 # fields enclosed by brackets "[]" replaced with your own identifying
18 # information: Portions Copyright [yyyy] [name of copyright owner]
19 #
20 # CDDL HEADER END
21 #
22
23 #
24 # Copyright 2007 Sun Microsystems, Inc. All rights reserved.
25 # Use is subject to license terms.
26 #
27 # ident "%Z%%M% %I% %E% SMI"
28 #
29
30 #
31 # install the UltraSPARC-T2 Crypto Provider device driver
32 #
33
34 PATH="/usr/bin:/usr/sbin:${PATH}"
35 export PATH
36
37 # Add hardware provider section for the n2cp driver
38 # to /etc/crypto/kcf.conf
39
40 pkg_start="# Start $PKGINST"
41 pkg_end="# End $PKGINST"
42 kcfconf=${BASEDIR}/etc/crypto/kcf.conf
43 tmpfile=/tmp/$$kcfconf
44 error=no
45
46 #
47 # If /etc/crypto/kcf.conf doesn't exist, bail immediately
48 #
49 if [ ! -f "$kcfconf" ]
50 then
51 echo "$0: ERROR - $kcfconf doesn't exist"
52 exit 2
53 fi
54
55 #
56 # If the package has been already installed, remove old entries
57 #
58 start=0
59 end=0
60 egrep -s "$pkg_start" $kcfconf && start=1
61 egrep -s "$pkg_end" $kcfconf && end=1
62
63 if [ $start -ne $end ] ; then
64 echo "$0: missing Start or End delimiters for $PKGINST in $kcfconf."
65 echo "$0: $kcfconf may be corrupted and was not updated."
66 error=yes
67 exit 2
68 fi
69
70 if [ $start -eq 1 ]
71 then
72 cp -p $kcfconf $tmpfile || error=yes
73 sed -e "/$pkg_start/,/$pkg_end/d" $kcfconf > $tmpfile || error=yes
74 else
75 cp -p $kcfconf $tmpfile || error=yes
76 fi
77
78 #
79 # Append the delimiters for this package
80 #
81 echo "$pkg_start driver_names=n2cp" >> $tmpfile || error=yes
82 echo "$pkg_end" >> $tmpfile || error=yes
83
84 #
85 # Install the updated config file and clean up the tmp file
86 #
87 if [ "$error" = no ]
88 then
89 mv $tmpfile $kcfconf || error=yes
90 fi
91 rm -f $tmpfile
92
93 #
94 # All done, if any of the steps above fail, report the error
95 #
96 if [ "$error" = yes ]
97 then
98 echo "$0: ERROR - failed to update $kcfconf."
99 exit 2
100 fi
101
102 NAMEMAJOR="${BASEDIR}/etc/name_to_major"
103
104 if [ "${BASEDIR:=/}" = "/" ]
105 then
106 ADD_DRV="/usr/sbin/add_drv"
107 else
108 ADD_DRV="/usr/sbin/add_drv -b ${BASEDIR}"
109 fi
110
111 grep -w n2cp ${NAMEMAJOR} > /dev/null 2>&1
112 if [ $? -ne 0 ]
113 then
114 $ADD_DRV -i '"SUNW,n2-cwq" "SUNW,vf-cwq"' n2cp || exit 1
115 fi
116
117 exit 0