#!/bin/sh
################################################################
# mk node boot script for HP9000 800 series following man scsi_pt
#
# This script is provided WITHOUT ANY WARRANTY.
################################################################

PATH=/sbin:/usr/sbin:/usr/bin:.
export PATH

case $1 in

start_msg)
	echo "Creating SCSI passthru (spt) driver nodes"
	;;

stop_msg)
	echo "Removing SCSI passthru (spt) driver nodes"
	;;

start)

	hpser=`uname -m | awk -F / '{print substr($2, 1, 1);}'`
	if [ $hpser -ne "8" ]; then
		echo "spt driver only needed on HP 9000/800 series."
		exit 0
	fi

	#mknod="echo mknod"
	#mkdir="echo mkdir -p"
	#chmod="echo chmod"
    
	mknod="/usr/sbin/mknod"
	mkdir="mkdir -p"
	chmod="chmod"
    
	sptlist="/tmp/spt.$$"
	echo "Searching SCSI passthru drivers (spt) ..."
	ioscan -kf -d spt | sed '1,2d' | awk '{print $3;}' > $sptlist
	nctl=`wc -l < $sptlist`
	echo "... found $nctl"

	if [ ! -s $sptlist ]; then
		rm -f $sptlist
		exit 0
	fi

	scsi=/dev/scsi
	${mkdir} ${scsi}
    
	rscsi=/dev/rscsi
	${mkdir} ${rscsi}
    
	cmajor=`lsdev -h -d spt | awk '{print $1;}'`
    
	for line in `cat $sptlist` ; do

		ctl=`echo $line | awk -F . '{print $1;}'`
		bus=`ioscan -f -k -H $ctl -C ext_bus | sed '1,2d' | awk '{print $2;}'`
		tgt=`echo $line | awk -F . '{print $2;}'`
		hextgt=`printf "%x" $tgt`

		# make first scsi nodes
		name="${scsi}/c${bus}t${tgt}l0"
		echo "Creating $name"
		${mknod} $name c $cmajor 0x${bus}${hextgt}000 > /dev/null 2>&1
		${chmod} 0600 $name > /dev/null 2>&1

		# then rscsi nodes
		rname="${rscsi}/c${bus}t${tgt}l0"
		echo "Creating $rname"
		# Old version, not working!
		#${mknod} $rname c $cmajor 0x${bus}${hextgt}020 > /dev/null 2>&1
		${mknod} $rname c $cmajor 0x${bus}${hextgt}000 > /dev/null 2>&1
		${chmod} 0600 $rname > /dev/null 2>&1
	done

	rm -f $sptlist
	exit 0
    
	;;

stop)
	;;

*)
	echo usage: $0 "{start|stop}"
	;;
esac

exit 0

