defeat DEFNAMES if removing trailing '.'; fix typo
[unix-history] / usr / src / etc / etc.tahoe / MAKEDEV
CommitLineData
284ded7a 1#! /bin/sh
1a808a9f 2# @(#)MAKEDEV 5.3 %G%
284ded7a
MK
3#
4# Device "make" file. Valid arguments:
5# std standard devices
6# local configuration specific devices
7# Tapes:
8# cy* Cipher
9# Disks:
10# dk* VDDC or SMDE disk
11# Terminal multiplexors:
12# vx* VIOC
13# Pseudo terminals:
14# pty* set of 32 master and slave pseudo terminals
15# Printers:
16# Call units:
17# Special purpose devices:
18# enp* CMC Ethernet interface for loading RAM
19# dr* IKON DR-11W
20# ik* IKON DR-11W w/ E&S PS300
21#
22umask 77
23for i
24do
25case $i in
26
27std)
28 /etc/mknod CP c 0 0
29 /etc/mknod console c 0 1
30 /etc/mknod remote c 0 2
6089ab5d
MK
31 /etc/mknod drum c 8 0 ; chmod 640 drum ; chgrp kmem drum
32 /etc/mknod mem c 3 0 ; chmod 640 mem ; chgrp kmem mem
33 /etc/mknod kmem c 3 1 ; chmod 640 kmem ; chgrp kmem kmem
34 /etc/mknod null c 3 2 ; chmod 666 null
35 /etc/mknod vmem c 3 3 ; chmod 640 vmem ; chgrp kmem vmem
284ded7a 36 /etc/mknod tty c 2 0 ; chmod 666 tty
6089ab5d
MK
37 /etc/mknod klog c 15 0 ; chmod 400 klog
38 ;;
284ded7a
MK
39
40cy*)
41 umask 0 ; unit=`expr $i : '..\(.*\)'`
42 case $i in
43 cy*) blk=3; chr=7 ;;
44 esac
45 case $unit in
46 0|1|2|3|4|5|6|7)
a3d9bb30
MK
47 four=`expr $unit + 4`
48 eight=`expr $unit + 8`
49 twelve=`expr $unit + 12`
50# twenty=`expr $unit + 20`
8f23f774
MK
51 /etc/mknod mt$unit b $blk $unit
52 /etc/mknod mt$four b $blk $four
53 /etc/mknod mt$eight b $blk $eight
54 /etc/mknod mt$twelve b $blk $twelve
55 ln mt$four nmt$unit ;: sanity
56 ln mt$twelve nmt$eight ;: ditto
57 /etc/mknod rmt$unit c $chr $unit
58 /etc/mknod rmt$four c $chr $four
59 /etc/mknod rmt$eight c $chr $eight
60 /etc/mknod rmt$twelve c $chr $twelve
61 ln rmt$four nrmt$unit ;: sanity
62 ln rmt$twelve nrmt$eight ;: ditto
284ded7a
MK
63# if [ $i = ut ]
64# then
65# /etc/mknod mt$twenty b $blk $twenty
66# /etc/mknod rmt$twenty c $chr $twenty
67# fi
284ded7a
MK
68 umask 77
69 ;;
70 *)
71 echo bad unit for tape in: $1
72 ;;
73 esac
74 ;;
75
76dk*)
77 unit=`expr $i : '..\(.*\)'`
78 case $i in
79 dk*) name=dk; blk=1; chr=5;;
80 esac
81 case $unit in
82 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)
83 case $unit in
84 a) u=10 ;;
85 b) u=11 ;;
86 c) u=12 ;;
87 d) u=13 ;;
88 e) u=14 ;;
89 f) u=15 ;;
90 *) u=$unit ;;
91 esac
92
93 /etc/mknod ${name}${unit}a b $blk `expr $u '*' 8 + 0`
94 /etc/mknod ${name}${unit}b b $blk `expr $u '*' 8 + 1`
95 /etc/mknod ${name}${unit}c b $blk `expr $u '*' 8 + 2`
96 /etc/mknod ${name}${unit}d b $blk `expr $u '*' 8 + 3`
97 /etc/mknod ${name}${unit}e b $blk `expr $u '*' 8 + 4`
98 /etc/mknod ${name}${unit}f b $blk `expr $u '*' 8 + 5`
99 /etc/mknod r${name}${unit}a c $chr `expr $u '*' 8 + 0`
100 /etc/mknod r${name}${unit}b c $chr `expr $u '*' 8 + 1`
101 /etc/mknod r${name}${unit}c c $chr `expr $u '*' 8 + 2`
102 /etc/mknod r${name}${unit}d c $chr `expr $u '*' 8 + 3`
103 /etc/mknod r${name}${unit}e c $chr `expr $u '*' 8 + 4`
104 /etc/mknod r${name}${unit}f c $chr `expr $u '*' 8 + 5`
105
106 chmod 644 ${name}${unit}[a-f]
107 chmod 644 r${name}${unit}[a-f]
108 ;;
109 *)
110 echo bad unit for disk in: $i
111 ;;
112 esac
113 ;;
114
115vx*)
116 unit=`expr $i : 'vx\(.*\)'`
117 case $unit in
118 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)
119 case $unit in
120 a) un=10 ;;
121 b) un=11 ;;
122 c) un=12 ;;
123 d) un=13 ;;
124 e) un=14 ;;
125 f) un=15 ;;
126 *) un=$unit ;;
127 esac
128 eval `echo $un | awk ' { u = $1 } END {
129 for (i = 0; i < 16; i++)
130 printf("/etc/mknod tty%02x c 1 %d; ",u*16+i,u*16+i); }'`
131 ls -1 tty?? | grep [A-F] | while read x; do
132 y=`echo $x | tr [A-F] [a-f]`
133 mv $x $y
134 done
135 ;;
136 *)
137 echo bad unit for vx in: $i
138 ;;
139 esac
140 ;;
141
142pty*)
143 class=`expr $i : 'pty\(.*\)'`
144 case $class in
145 0) offset=0 name=p;;
146 1) offset=16 name=q;;
147 2) offset=32 name=r;;
8f23f774 148 3) offset=32 name=s;;
284ded7a
MK
149 *) echo bad unit for pty in: $i;;
150 esac
151 case $class in
8f23f774 152 0|1|2|3)
284ded7a
MK
153 umask 0
154 eval `echo $offset $name | awk ' { b=$1; n=$2 } END {
155 for (i = 0; i < 16; i++)
156 printf("/etc/mknod tty%s%x c 9 %d; \
157 /etc/mknod pty%s%x c 10 %d; ", \
158 n, i, b+i, n, i, b+i); }'`
159 ls -1 tty?? | grep [A-F] | while read x; do
160 y=`echo $x | tr [A-F] [a-f]`
161 mv $x $y
162 done
163 ls -1 pty?? | grep [A-F] | while read x; do
164 y=`echo $x | tr [A-F] [a-f]`
165 mv $x $y
166 done
167 umask 77
168 ;;
169 esac
170 ;;
171
172enp*)
173 unit=`expr $i : 'enp\(.*\)'`
174 case $unit in
175 [0-6])
176 /etc/mknod enp${unit}ram c 16 $unit; chmod 644 enp${unit}ram
177 ;;
178 *)
179 echo bad unit for enp in: $i
180 ;;
181 esac
182 ;;
183
184dr*)
185 unit=`expr $i : 'dr\(.*\)'`
186 case $unit in
187 [0-6])
188 /etc/mknod dr${unit} c 18 $unit; chmod 644 dr${unit}
189 ;;
190 *)
191 echo bad unit for dr in: $i
192 ;;
193 esac
194 ;;
195
196ik*)
197 unit=`expr $i : 'ik\(.*\)'`
198 case $unit in
199 [0-9])
200 /etc/mknod ik${unit} c 20 $unit; chmod 644 ik${unit}
201 ;;
202 *)
203 echo bad unit for ik in: $i
204 ;;
205 esac
206 ;;
207
208local)
209 sh MAKEDEV.local
210 ;;
211esac
212done