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