#
# mkptys 0.1
#
# (C)1995 Daniele Paoni				mc5171@mclink.it
#
#
# makedev() is from /etc/MAKEDEV
#
#

makedev () {	# usage: makedev name [bcu] major minor owner:group mode
	rm -f $1
	mknod $1 $2 $3 $4 &&
	chown $5 $1 &&
	chmod $6 $1
}

usage () { 
   echo "Usage : mkptys [-link] <nr_drivers>"
   exit 0
}

if [ -z "$1" ]  ; then
   usage
fi
dolink=0

if [ "$1" = "-link" ] ; then
    dolink=1
    shift
fi

if [ $[$1+0] != "$1" ] ; then
	usage
    else
	nr_drivers=$1
fi

echo Creating $nr_drivers set of ptys ...
major=32
base=0
numdrv=0
while [ $numdrv -lt $1 ] ; do
   minor=0 
   major_slave=`expr $major + 1`
   while [ $minor -le 255 ] ; do 
	   echo -n ptyp$base / ttyp$base
	   makedev /dev/ptyp$base c $major $minor root:root 666
	   makedev /dev/ttyp$base c $major_slave $minor root:root 666
	   if [ "$base" -ge "10" -a "$base" -lt "176" -a $dolink -eq "1" ] 
	     then 
		p1=`expr $base / 16 + 1`
		p2=`expr $base % 16 + 1`
		newname=`echo pqrstuvwxyz | cut -c$p1``echo 0123456789abcdef | cut -c$p2`
		echo " linked to /dev/pty$newname / /dev/tty$newname"
		/bin/rm -f /dev/pty$newname  /dev/tty$newname
		ln -s /dev/ptyp$base /dev/pty$newname
		ln -s /dev/ttyp$base /dev/tty$newname
              else 
	        echo
	     fi
	   base=`expr $base + 1`
	   minor=`expr $minor + 1`
   done
   major=`expr $major + 2`
   numdrv=`expr $numdrv + 1`
done
echo "done."
exit 0
