1*13059SThuy.Fettig@oracle.COM#! /bin/sh 2*13059SThuy.Fettig@oracle.COM# 3*13059SThuy.Fettig@oracle.COM# 4*13059SThuy.Fettig@oracle.COM# CDDL HEADER START 5*13059SThuy.Fettig@oracle.COM# 6*13059SThuy.Fettig@oracle.COM# The contents of this file are subject to the terms of the 7*13059SThuy.Fettig@oracle.COM# Common Development and Distribution License (the "License"). 8*13059SThuy.Fettig@oracle.COM# You may not use this file except in compliance with the License. 9*13059SThuy.Fettig@oracle.COM# 10*13059SThuy.Fettig@oracle.COM# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 11*13059SThuy.Fettig@oracle.COM# or http://www.opensolaris.org/os/licensing. 12*13059SThuy.Fettig@oracle.COM# See the License for the specific language governing permissions 13*13059SThuy.Fettig@oracle.COM# and limitations under the License. 14*13059SThuy.Fettig@oracle.COM# 15*13059SThuy.Fettig@oracle.COM# When distributing Covered Code, include this CDDL HEADER in each 16*13059SThuy.Fettig@oracle.COM# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 17*13059SThuy.Fettig@oracle.COM# If applicable, add the following below this CDDL HEADER, with the 18*13059SThuy.Fettig@oracle.COM# fields enclosed by brackets "[]" replaced with your own identifying 19*13059SThuy.Fettig@oracle.COM# information: Portions Copyright [yyyy] [name of copyright owner] 20*13059SThuy.Fettig@oracle.COM# 21*13059SThuy.Fettig@oracle.COM# CDDL HEADER END 22*13059SThuy.Fettig@oracle.COM# 23*13059SThuy.Fettig@oracle.COM# Copyright (c) 1993, 2010, Oracle and/or its affiliates. All rights reserved. 24*13059SThuy.Fettig@oracle.COM# 25*13059SThuy.Fettig@oracle.COM 26*13059SThuy.Fettig@oracle.COM. /lib/svc/share/smf_include.sh 27*13059SThuy.Fettig@oracle.COM 28*13059SThuy.Fettig@oracle.COMDEVALLOC=/etc/security/device_allocate 29*13059SThuy.Fettig@oracle.COMDEVMAPS=/etc/security/device_maps 30*13059SThuy.Fettig@oracle.COMDEVFSADM=/usr/sbin/devfsadm 31*13059SThuy.Fettig@oracle.COMMKDEVALLOC=/usr/sbin/mkdevalloc 32*13059SThuy.Fettig@oracle.COMMKDEVMAPS=/usr/sbin/mkdevmaps 33*13059SThuy.Fettig@oracle.COMHALFDI=/etc/hal/fdi/policy/30user/90-solaris-device-allocation.fdi 34*13059SThuy.Fettig@oracle.COM 35*13059SThuy.Fettig@oracle.COM# dev_allocation_convert 36*13059SThuy.Fettig@oracle.COM# All the real work gets done in this function 37*13059SThuy.Fettig@oracle.COM 38*13059SThuy.Fettig@oracle.COMdev_allocation_convert() 39*13059SThuy.Fettig@oracle.COM{ 40*13059SThuy.Fettig@oracle.COM# 41*13059SThuy.Fettig@oracle.COM# If allocation already configured, just return 42*13059SThuy.Fettig@oracle.COM# 43*13059SThuy.Fettig@oracle.COMif [ -f ${HALFDI} -a -f ${DEVALLOC} -a -f ${DEVMAPS} ]; then 44*13059SThuy.Fettig@oracle.COM return 45*13059SThuy.Fettig@oracle.COMfi 46*13059SThuy.Fettig@oracle.COM 47*13059SThuy.Fettig@oracle.COM# Prevent automount of removable and hotpluggable volume 48*13059SThuy.Fettig@oracle.COM# by forcing volume.ignore HAL property on all such volumes. 49*13059SThuy.Fettig@oracle.COMif [ ! -f ${HALFDI} ]; then 50*13059SThuy.Fettig@oracle.COM cat > ${HALFDI} <<FDI 51*13059SThuy.Fettig@oracle.COM<?xml version="1.0" encoding="UTF-8"?> 52*13059SThuy.Fettig@oracle.COM<deviceinfo version="0.2"> 53*13059SThuy.Fettig@oracle.COM <device> 54*13059SThuy.Fettig@oracle.COM <match key="info.capabilities" contains="volume"> 55*13059SThuy.Fettig@oracle.COM <match key="@block.storage_device:storage.removable" bool="true"> 56*13059SThuy.Fettig@oracle.COM <merge key="volume.ignore" type="bool">true</merge> 57*13059SThuy.Fettig@oracle.COM </match> 58*13059SThuy.Fettig@oracle.COM <match key="@block.storage_device:storage.hotpluggable" bool="true"> 59*13059SThuy.Fettig@oracle.COM <merge key="volume.ignore" type="bool">true</merge> 60*13059SThuy.Fettig@oracle.COM </match> 61*13059SThuy.Fettig@oracle.COM </match> 62*13059SThuy.Fettig@oracle.COM </device> 63*13059SThuy.Fettig@oracle.COM</deviceinfo> 64*13059SThuy.Fettig@oracle.COMFDI 65*13059SThuy.Fettig@oracle.COMfi 66*13059SThuy.Fettig@oracle.COM 67*13059SThuy.Fettig@oracle.COM# Initialize device allocation 68*13059SThuy.Fettig@oracle.COM 69*13059SThuy.Fettig@oracle.COM 70*13059SThuy.Fettig@oracle.COM# Need to determine if Trusted Extensions is enabled. 71*13059SThuy.Fettig@oracle.COM# Check the setting in etc/system (other methods won't work 72*13059SThuy.Fettig@oracle.COM# because TX is likely not yet fully active.) 73*13059SThuy.Fettig@oracle.COM# 74*13059SThuy.Fettig@oracle.COMgrep "^[ ]*set[ ][ ]*sys_labeling[ ]*=[ ]*1" \ 75*13059SThuy.Fettig@oracle.COM /etc/system > /dev/null 2>&1 76*13059SThuy.Fettig@oracle.COM 77*13059SThuy.Fettig@oracle.COMif [ $? = 0 ]; then 78*13059SThuy.Fettig@oracle.COM # Trusted Extensions is enabled (but possibly not yet booted). 79*13059SThuy.Fettig@oracle.COM ${DEVFSADM} -e 80*13059SThuy.Fettig@oracle.COMelse 81*13059SThuy.Fettig@oracle.COM if [ ! -f ${DEVALLOC} ]; then 82*13059SThuy.Fettig@oracle.COM echo "DEVICE_ALLOCATION=ON" > $DEVALLOC 83*13059SThuy.Fettig@oracle.COM ${MKDEVALLOC} >> $DEVALLOC 84*13059SThuy.Fettig@oracle.COM fi 85*13059SThuy.Fettig@oracle.COM if [ ! -f ${DEVMAPS} ]; then 86*13059SThuy.Fettig@oracle.COM ${MKDEVMAPS} > $DEVMAPS 87*13059SThuy.Fettig@oracle.COM fi 88*13059SThuy.Fettig@oracle.COMfi 89*13059SThuy.Fettig@oracle.COM} 90*13059SThuy.Fettig@oracle.COM 91*13059SThuy.Fettig@oracle.COMdev_allocation_unconvert() 92*13059SThuy.Fettig@oracle.COM{ 93*13059SThuy.Fettig@oracle.COM # Turn off device allocation. 94*13059SThuy.Fettig@oracle.COM ${DEVFSADM} -d 95*13059SThuy.Fettig@oracle.COM /usr/bin/rm -f $DEVALLOC $DEVMAPS 96*13059SThuy.Fettig@oracle.COM # Restore default policy for removable and hotpluggable volumes 97*13059SThuy.Fettig@oracle.COM /usr/bin/rm -f $HALFDI 98*13059SThuy.Fettig@oracle.COM} 99*13059SThuy.Fettig@oracle.COM 100*13059SThuy.Fettig@oracle.COMcase "$1" in 101*13059SThuy.Fettig@oracle.COM'start') 102*13059SThuy.Fettig@oracle.COM dev_allocation_convert 103*13059SThuy.Fettig@oracle.COM deallocate -Is 104*13059SThuy.Fettig@oracle.COM ;; 105*13059SThuy.Fettig@oracle.COM'stop') 106*13059SThuy.Fettig@oracle.COM state=`/usr/bin/svcprop -c -p general/enabled $SMF_FMRI 2>/dev/null` 107*13059SThuy.Fettig@oracle.COM if [ "$state" = "true" ] ; then 108*13059SThuy.Fettig@oracle.COM exit $SMF_EXIT_OK 109*13059SThuy.Fettig@oracle.COM fi 110*13059SThuy.Fettig@oracle.COM dev_allocation_unconvert 111*13059SThuy.Fettig@oracle.COM ;; 112*13059SThuy.Fettig@oracle.COMesac 113*13059SThuy.Fettig@oracle.COM 114*13059SThuy.Fettig@oracle.COMexit $SMF_EXIT_OK 115