#/bin/sh

if [ "$EUID" != "0" ]; 	then echo "No Root permission"; 
	echo "login as user with root permissions";
	exit 0	;
fi
/sbin/lspci -v -d 13a8: -n 1> /etc/card_list

#cat card_list
declare CARD=1
declare PORT=0;
declare MAJOR=30
declare CUMAJOR=30
declare MSGFILE=/var/log/ISIUPCI_msg

function find_next_free_card()
{
	declare i=0;
	for i in 1a 2a 3a 4a 
	do
		echo /dev/ttyMU$i
		if [ -r /dev/ttyMU$i ]
		then
			echo found card  $CARD
			((CARD++))
		else
			
			return
		fi
	done
}

function create_4ports()
{
  declare i=0;
  declare tty;

  declare nofCards=$1;

  while ((nofCards-- > 0 ))
  do
	  rm -f /dev/ttyMU$CARD*
	  rm -f /dev/cum$CARD*
#	echo "Creating 4 ports"
	for i in a b c d
	#while [[ $i < 4 ]]
	do	

		echo /dev/ttyMU$CARD$i /dev/cum$CARD$i $PORT
		mknod /dev/ttyMU$CARD$i c $MAJOR $PORT
		mknod /dev/cum$CARD$i c $CUMAJOR $PORT

		chmod a+wx /dev/ttyMU$CARD$i
		chmod a+wx /dev/cum$CARD$i

		((PORT++));
	#	((tty++));
	#	((i++))
	done
	# Even though we create 4 ports we need to +4 the ports
	# since each cards need to start at 0, 8, 16, 24 etc etc
	((PORT += 4))
	((CARD++));
  done
}

function create_8ports()
{
  declare nofCards=$1;

  while ((nofCards-- > 0 ))
  do
	rm -f /dev/ttyMU$CARD*
	rm -f /dev/cum$CARD*
	for i in a e b f c g d h
	do

		echo /dev/ttyMU$CARD$i /dev/cum$CARD$i $PORT
		mknod /dev/ttyMU$CARD$i c $MAJOR $PORT
		mknod /dev/cum$CARD$i c $CUMAJOR $PORT

		chmod a+wx /dev/ttyMU$CARD$i
		chmod a+wx /dev/cum$CARD$i

		((PORT++));
	done	
	((CARD++));
  done
}

if [ "$EUID" != "0" ]; 	then echo "No Root permission"; 
	echo "login as user with root permissions";
	exit 0	;
fi

Nof4PortsSerial=`/bin/grep "2001" /etc/card_list -c`
Nof8PortsSerial=`/bin/grep "2002" /etc/card_list -c`
Nof4PortsModem=`/bin/grep "2003" /etc/card_list -c`
Nof8PortsModem=`/bin/grep "2004" /etc/card_list -c`

echo $Nof4PortsSerial $Nof8PortsSerial $Nof4PortsModem $Nof8PortsModem

rm -f /dev/mtsi_upci
echo "Creating new nodes for ports from Multi-Tech ISIUPCI Board(s)"
echo `date` >> $MSGFILE
echo "Creating new nodes for ports from Multi-Tech ISIUPCI Board(s)" >> $MSGFILE
mknod /dev/mtsi_upci c $MAJOR 32
chmod a+wx /dev/mtsi_upci

CardList=`/bin/grep "2205" /etc/card_list | cut -f 3 -d ':' `
#echo $CardList 
# make sure we have atleast 4 spaces ... see cut below
echo $CardList "    " > /var/list

declare k=1;
while (( k <= 4 ))
do
	#echo $k
	CurrCard=`cut -f $k -d ' ' /var/list`
	#echo $CurrCard
	if (( CurrCard == 2001 || CurrCard == 2003 )) 
	then
		echo "Creating 4 port for Card" $k
		echo "Creating 4 port for Card" $k >> $MSGFILE
		create_4ports 1
	elif (( CurrCard == 2002 || CurrCard == 2004 )) 
	then
		echo "Creating 8 port for Card" $k
		echo "Creating 8 port for Card" $k >> $MSGFILE
		create_8ports 1
	fi		
	(( k++ ))
done
# remove files
#rm -f /etc/card_list
rm -f /var/list
