#!/bin/sh

MAJOR=60
MAX_CARDS=4
PERM=666

function create_device () {
  rm -f $1
  mknod -m $PERM $1 c $MAJOR $2
}

function create_device1 () {
  rm -f $1
  minor=$[ $2 + 128 ]
  mknod -m $PERM $1 c $MAJOR $minor
}

function create_devices () {
  tmp=0
  rm -f $1 $1?
  while [ $tmp -lt $MAX_CARDS ]; do
    minor=$[ $tmp * 16 ]
    minor=$[ $2 + 128 + $minor ]
    mknod -m $PERM $1$tmp c $MAJOR $minor
    tmp=$[ $tmp + 1 ]
  done
}

function create_devices2 () {
  tmp=0
  rm -f $1 $1?
  while [ $tmp -lt $MAX_CARDS ]; do
    tmp1=0
    while [ $tmp1 -lt $3 ]; do
      minor=$[ $tmp * 16 ]
      minor=$[ $2 + 128 + $minor + $tmp1 ]
      mknod -m $PERM $1$tmp$tmp1 c $MAJOR $minor
      tmp1=$[ $tmp1 + 1 ]
    done
    tmp=$[ $tmp + 1 ]
  done
}

if [ "$1" = "-?" ] || [ "$1" = "-h" ]; then
  echo "Usage: guscoss"
  exit
fi

# New devices...

rm -f /dev/gusd*
rm -f /dev/gusmixer*
rm -f /dev/guspcm*
rm -f /dev/gusmidi*
create_devices /dev/gus 	0
create_devices /dev/gusctl	1
create_devices /dev/insman	2
create_devices2 /dev/gusmixer	6 2
create_devices2 /dev/guspcm	8 2
create_devices2 /dev/gusmidi	10 2
create_device1 /dev/gusmidi	14
create_device1 /dev/gusinfo	15
