#! /bin/sh
#
# /etc/init.d/gm
#
# gm            Script to initialze the gm drive for the myrinet.
#               Written by a user at  ccrl.nj.nec.com
#               This is a simple version.
#
# Version:	@(#)gm - Mon Jun  7 02:33:37 EDT 1999
#
# Do something like 
# cd /etc/rcS.d
# ln -s ../init.d/gm S40gm
# to install the script in the boot process.
#

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

#
# For the driver
#
VER=`uname -r`
DRIVER=gm
DRIVERFILE=/lib/modules/$VER/net/gm
NAME=gm
DESC="myrinet driver for linux $VER"

#
# For the network
#
IPADDRESS=10.1.4.2
NETWORK=10.1.4.0
NETMASK=255.255.255.0
BROADCAST=10.1.4.255

#
# handy functions for rmmod/insmod
#
function xrmmod () {
        grep -qe "^$1" /proc/modules || return
        echo rmmod $1
        rmmod $1 || exit 1
}

function xinsmod () {
        echo insmod $*
        insmod -f $* || exit 1
}

test -f $DRIVERFILE || exit 0

# set -e

case "$1" in
  start)
	echo "Starting $DESC: "

	sync ; sync
	echo "ifconfig myri0 down - in case it was up"
	ifconfig myri0 down
	echo "Removing any existing gm driver."
	xrmmod $DRIVER
	echo "Adding new GM driver."
	xinsmod -f  $DRIVERFILE
	
	#
	# Myrinet configuration
	#
	ifconfig myri0 $IPADDRESS netmask $NETMASK broadcast $BROADCAST up
	route add -net $NETWORK netmask $NETMASK dev myri0

	echo "$NAME."
	;;
  stop)
	echo "Stopping $DESC: "

	echo "ifconfig myri0 down - in case it was up"
	ifconfig myri0 down
	echo "Removing any existing gm driver."
	xrmmod gm

	echo "$NAME."
	;;
  *)
	N=/etc/init.d/$NAME
	echo "Usage: $N {start|stop}" >&2
	exit 1
	;;
esac

exit 0
