#!/bin/sh
#
# MOXA Smartio/Industio Family Multiport Board Make Node Utility.
#
#
#    Usage : msmknod
#


MAXPORTS=8

#Callin device naming : ttyM[port idx]
TTYNAME=ttyM

#Callin device init state naming : ttyiM[port idx]
TTYINAME=ttyiM

#Callin device lock state naming : ttylM[port idx]
TTYLNAME=ttylM

#Callout device naming : cum[port idx]
CUANAME=cum

#Callout device init state naming : cuim[port idx]
CUAINAME=cuim

#Callout device lock state naming : culm[port idx]
CUALNAME=culm

echo "MOXA Smartio Family Multiport Board Make Node Utility."
echo "Note: This is only for FreeBSD 4.x."
echo "Please input device major number(Enter for default=33):"
read MAJOR
if [ ! $MAJOR ] ; then
    MAJOR=33
fi
echo "major=" $MAJOR
echo ""

echo "Please input total board number (1-4, Enter for default=1):"
read BOARDS
if [ ! $BOARDS ] ; then
    BOARDS=1
fi
echo "boards=" $BOARDS
echo ""

#
# make special node for "msdiag", "msmon"
#
echo "Make special node..."
[ -f /dev/mxser ] || rm -rf /dev/mxser
mknod /dev/mxser c $MAJOR 96
chmod a+wx /dev/mxser

#
# make node loop
#
echo "Make tty device..."
board=0
while [ $board -lt $BOARDS ]
do
    port=0
    while [ $port -lt $MAXPORTS ]
    do
        id=`expr $board \* $MAXPORTS`
		id=`expr $id + $port`
		id_i=`expr $id + 32`
		id_l=`expr $id + 64`
		out_id=`expr $id + 128`
		outi_id=`expr $id + 160`
		outl_id=`expr $id + 192`

		[ -c /dev/$TTYNAME$id ] && rm -f /dev/$TTYNAME$id
		[ -c /dev/$TTYINAME$id ] && rm -f /dev/$TTYINAME$id
		[ -c /dev/$TTYLNAME$id ] && rm -f /dev/$TTYLNAME$id
		[ -c /dev/$CUANAME$id ] && rm -f /dev/$CUANAME$id
		[ -c /dev/$CUAINAME$id ] && rm -f /dev/$CUAINAME$id
		[ -c /dev/$CUALNAME$id ] && rm -f /dev/$CUALNAME$id

    	echo /dev/$TTYNAME$id " "$id "  "/dev/$CUANAME$id " "$out_id
    	echo /dev/$TTYINAME$id $id_i " "/dev/$CUAINAME$id $outi_id
    	echo /dev/$TTYLNAME$id $id_l " "/dev/$CUALNAME$id $outl_id
		echo ""

    	mknod /dev/$TTYNAME$id c $MAJOR $id
    	mknod /dev/$TTYINAME$id c $MAJOR $id_i
    	mknod /dev/$TTYLNAME$id c $MAJOR $id_l
    	mknod /dev/$CUANAME$id c $MAJOR $out_id
    	mknod /dev/$CUAINAME$id c $MAJOR $outi_id
    	mknod /dev/$CUALNAME$id c $MAJOR $outl_id

		chmod 0600 /dev/$TTYNAME$id
		chmod 0600 /dev/$TTYINAME$id
		chmod 0600 /dev/$TTYLNAME$id
		chmod 0660 /dev/$CUANAME$id
		chmod 0660 /dev/$CUAINAME$id
		chmod 0660 /dev/$CUALNAME$id

        port=`expr $port + 1`
    done

    board=`expr $board + 1`
done
