#!/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"
      ${mknod} $rname c $cmajor 0x${bus}${hextgt}020 > /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

