#!/bin/sh -
#	$NetBSD: SVR4_MAKEDEV,v 1.8 2000/03/03 04:27:17 hubertf Exp $
#
# Copyright (c) 1995 Christos Zoulas
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the distribution.
# 3. The names of the authors may not be used to endorse or promote products
#    derived from this software without specific prior written permission
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Device "make" file.  Valid arguments:
#	all	everything
# Terminal devices:
#	ptmx		pty master multiplexer
#	pts[0-3]	pty slave devices in /dev/pts (actually symlinks)
# Network:
#	udp		UDP socket creation
#	tcp		TCP socket creation
#	rawip		RAW socket creation
#	ticlts		UNIX datagram creation
#	ticotsord	UNIX stream creation (with orderly release)
#	ticots		UNIX stream creation
# Various:
#	wabi		Windows emulation; /dev/null for now
#
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:/usr/etc
MACHINE=${MACHINE:-`/usr/bin/uname -m`}
umask 77

case $MACHINE in
amiga)		major=51;;
atari)		major=51;;
hp300)		major=36;;
i386)		major=43;;
mac68k)		major=44;;
mvme68k)	major=38;;
next68k)	major=44;;
news68k)	major=75;;
sparc)		major=43;;
sun3)		major=83;;
x68k)		major=42;;
*)
		echo $MACHINE: unsupported machine >&2
		exit 1
		;;
esac

for i
do

unit=`expr $i : '[a-z][a-z]*\([0-9][0-9]*\)'`
[ "$unit" ] || unit=0

case $i in

all)
	sh SVR4_MAKEDEV ptmx pts0 pts1 pts2 pts3
	sh SVR4_MAKEDEV tcp udp rawip ticlts ticotsord ticots wabi
	;;

ptmx)
	rm -f $i
	mknod $i		c $major 10
	chown bin.bin $i
	chmod 666 $i
	;;

pts*)
	case $unit in
	0) name=p;;
	1) name=q;;
	2) name=r;;
	3) name=s;;
	*) name=''; echo 'pts: units range from 0 to 3';;
	esac

	mkdir >/dev/null 2>&1 pts
	chown bin.bin pts
	chmod 755 pts
	if [ -n "$name" ]; then
		j=`expr $unit \* 16`
		for i in 0 1 2 3 4 5 6 7 8 9 a b c d e f; do
			rm -f pts/$j
			ln -s /dev/tty$name$i pts/$j
			j=`expr $j + 1`
		done
	fi
	;;

tcp)
	rm -f $i
	mknod $i		c $major 35
	chown bin.bin $i
	chmod 666 $i
	;;


udp)
	rm -f $i
	mknod $i		c $major 36
	chown bin.bin $i
	chmod 666 $i
	;;

rawip)
	rm -f $i
	mknod $i		c $major 37
	chown bin.bin $i
	chmod 666 $i
	;;

ticlts)
	rm -f $i
	mknod $i		c $major 38
	chown bin.bin $i
	chmod 666 $i
	;;

ticotsord)
	rm -f $i
	mknod $i		c $major 39
	chown bin.bin $i
	chmod 666 $i
	;;

ticots)
	rm -f $i
	mknod $i		c $major 40
	chown bin.bin $i
	chmod 666 $i
	;;


wabi)
	rm -f $i
	case $MACHINE in
	amiga|\
	atari|\
	hp300|\
	i386|\
	mac68k|\
	mvme68k|\
	next68k|\
	x68k)
		mknod $i	c 2 2;;	# /dev/null
	news68k|\
	sparc|\
	sun3)
		mknod $i	c 3 2;;	# /dev/null
	esac
	chown bin.bin $i
	chmod 666 $i
	;;

*)
	echo $i: unknown device 2>&1
	exit 1
	;;
esac
done

