|
|
1.1 root 1: #! /bin/sh
2: # @(#)MAKEDEV 4.16 7/23/83
3: #
4: # Device "make" file. Valid arguments:
5: # std standard devices
6: # local configuration specific devices
7: # Tapes:
8: # ht* massbus tm03 & tu??
9: # tm* unibus tm11 & te10 emulations (e.g. Emulex tc-11)
10: # ts* unibus ts11
11: # mt* massbus tu78
12: # ut* unibus tu45 emulations (e.g.si 9700)
13: # uu* tu58 cassettes on dl11 controller
14: # Disks:
15: # hp* massbus rm??
16: # hk* unibus rk06 and rk07
17: # up* other unibus devices (e.g. on Emulex sc-21v controller)
18: # ra* unibus uda50 w/ ra??
19: # rl* unibus rl02
20: # rb* 730 idc w/ rb80 and/or rb02
21: # rx* unibus rx211 floppy disk
22: # Terminal multiplexors:
23: # dz* unibus dz11 and dz32
24: # dh* unibus dh11 and emulations (e.g. Able dmax, Emulex cs-11)
25: # dmf* unibus dmf32
26: # Pseudo terminals:
27: # pty* set of 16 master and slave pseudo terminals
28: # Printers:
29: # ct* unibus parallel interface to CAT typesetter
30: # lp* unibus lp11 parallel interface
31: # va* unibus varian parallel interface
32: # vp* unibus versatec parallel interface
33: # Call units:
34: # dn* unibus dn11 and emulations (e.g. Able Quadracall)
35: # Special purpose devices:
36: # ik* unibus interface to ikonas frame buffer
37: # ps* unibus interface to e&s picture system 2
38: # ad* unibus interface to data translation a/d converter
39: umask 77
40: for i
41: do
42: case $i in
43:
44: std)
45: /etc/mknod console c 0 0
46: /etc/mknod drum c 7 0 ; chmod 644 drum
47: /etc/mknod floppy c 8 0
48: /etc/mknod tu0 b 8 0
49: /etc/mknod tu1 b 8 1
50: /etc/mknod kUmem c 3 3 ;: no one has ever tried using this
51: /etc/mknod kmem c 3 1 ; chmod 644 kmem
52: /etc/mknod mem c 3 0 ; chmod 644 mem
53: /etc/mknod null c 3 2 ; chmod 666 null
54: /etc/mknod tty c 2 0 ; chmod 666 tty
55: ;;
56:
57: ht*|tm*|ts*|mt*|ut*)
58: umask 0 ; unit=`expr $i : '..\(.*\)'`
59: case $i in
60: ht*) blk=1; chr=5 ;;
61: tm*) blk=5; chr=14;;
62: ts*) blk=6; chr=16;;
63: mt*) blk=7; chr=19;;
64: ut*) blk=10; chr=17;;
65: esac
66: case $unit in
67: 0|1|2|3|4|5|6|7)
68: four=`expr $unit + 4` ; eight=`expr $unit + 8`
69: twelve=`expr $unit + 12`; twenty=`expr $unit + 20`
70: /etc/mknod mt$unit b $blk $unit
71: /etc/mknod mt$four b $blk $four
72: /etc/mknod mt$eight b $blk $eight
73: /etc/mknod mt$twelve b $blk $twelve
74: /etc/mknod nmt$unit b $blk $four ;: sanity w/pdp11 v7
75: /etc/mknod nmt$eight b $blk $twelve ;: ditto
76: /etc/mknod nrmt$unit c $chr $four ;: sanity w/pdp11 v7
77: /etc/mknod nrmt$eight c $chr $twelve ;: ditto
78: /etc/mknod rmt$unit c $chr $unit
79: /etc/mknod rmt$four c $chr $four
80: /etc/mknod rmt$eight c $chr $eight
81: /etc/mknod rmt$twelve c $chr $twelve
82: if [ $i = ut ]
83: then
84: /etc/mknod mt$twenty b $blk $twenty
85: /etc/mknod rmt$twenty c $chr $twenty
86: fi
87: umask 77
88: ;;
89: *)
90: echo bad unit for tape in: $1
91: ;;
92: esac
93: ;;
94:
95: hp*|hk*|up*|ra*|rl*|rb*)
96: unit=`expr $i : '..\(.*\)'`
97: case $i in
98: hp*) name=hp; blk=0; chr=4;;
99: hk*) name=hk; blk=3; chr=11;;
100: up*) name=up; blk=2; chr=13;;
101: ra*) name=ra; blk=9; chr=9;;
102: rb*) name=rb; blk=11; chr=23;;
103: rl*) name=rl; blk=14; chr=32;;
104: esac
105: case $unit in
106: 0|1|2|3|4|5|6|7)
107: /etc/mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
108: /etc/mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1`
109: /etc/mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2`
110: /etc/mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6`
111: /etc/mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
112: /etc/mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1`
113: /etc/mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
114: /etc/mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6`
115: if [ $name != hk ]
116: then
117: /etc/mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3`
118: /etc/mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4`
119: /etc/mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5`
120: /etc/mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7`
121: /etc/mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3`
122: /etc/mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4`
123: /etc/mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5`
124: /etc/mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7`
125: fi
126: ;;
127: *)
128: echo bad unit for disk in: $i
129: ;;
130: esac
131: ;;
132:
133: rx*)
134: unit=`expr $i : '..\(.*\)'`
135: name=rx; chr=30; blk=12;
136: case $unit in
137: 0|1|2|3|4|5|6|7)
138: /etc/mknod ${name}${unit} b $blk `expr $unit '*' 8 + 0`
139: /etc/mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
140: /etc/mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1`
141: /etc/mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
142: /etc/mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3`
143: ;;
144: *)
145: echo bad unit for floppy disk in: $i
146: ;;
147: esac
148: ;;
149:
150: uu*)
151: unit=`expr $i : '..\(.*\)'`
152: name=uu; blk=13;
153: case $unit in
154: 0|1|2|3)
155: /etc/mknod ${name}${unit} b $blk `expr $unit '*' 2 + 0`
156: /etc/mknod ${name}${unit}a b $blk `expr $unit '*' 2 + 1`
157: ;;
158: *)
159: echo bad unit for uu cassette in: $i
160: ;;
161: esac
162: ;;
163:
164: dz*)
165: unit=`expr $i : 'dz\(.*\)'`
166: case $unit in
167: 0|1|2|3|4|5|6|7)
168: eval `echo $unit | awk ' { u = $1 } END {
169: for (i = 0; i < 8; i++)
170: printf("/etc/mknod tty%02d c 1 %d; ",u*8+i,u*8+i); }'`
171: ;;
172: *)
173: echo bad unit for dz in: $i
174: ;;
175: esac
176: ;;
177:
178: dh*|dmf*)
179: case $i in
180: dh*) name=dh; major=12;;
181: dmf*) name=dmf; major=22;;
182: esac
183: unit=`expr $i : "$name\(.*\)"`
184: case $unit in
185: 0) ch=h ;; 1) ch=i ;; 2) ch=j ;; 3) ch=k ;;
186: 4) ch=l ;; 5) ch=m ;; 6) ch=n ;; 7) ch=o ;;
187: *) echo bad unit for $name in: $i ;;
188: esac
189: case $ch in
190: h|i|j|k|l|m|n|o)
191: eval `echo $ch $unit $major |
192: awk ' { ch = $1; u = 16 * $2; m = $3 } END {
193: for (i = 0; i < 16; i++)
194: printf("/etc/mknod tty%s%x c %d %d; ",ch,i,m,u+i); }'`
195: ;;
196: esac
197: ;;
198:
199: lp*|va*|vp*)
200: case $i in
201: lp*) name=lp; major=15;;
202: va*) name=va; major=10;;
203: vp*) name=vp; major=6;;
204: esac
205: unit=`expr $i : "$name\(.*\)"`
206: case $unit in
207: 0|1|2|3|4|5|6|7)
208: /etc/mknod $i c $major $unit;
209: chmod 666 $i
210: ;;
211: *)
212: echo bad unit for $name in: $i
213: ;;
214: esac
215: ;;
216:
217: pty*)
218: class=`expr $i : 'pty\(.*\)'`
219: case $class in
220: 0) offset=0 name=p;;
221: 1) offset=16 name=q;;
222: 2) offset=32 name=r;;
223: *) echo bad unit for pty in: $i;;
224: esac
225: case $class in
226: 0|1|2)
227: umask 0
228: eval `echo $offset $name | awk ' { b=$1; n=$2 } END {
229: for (i = 0; i < 16; i++)
230: printf("/etc/mknod tty%s%x c 20 %d; \
231: /etc/mknod pty%s%x c 21 %d; ", \
232: n, i, b+i, n, i, b+i); }'`
233: umask 77
234: ;;
235: esac
236: ;;
237:
238: dn*|ik*|ps*|ad*|ct*)
239: unit=`expr $i : '..\(.*\)'`
240: case $i in
241: ct*) name=ct; chr=18;;
242: dn*) name=cu; chr=24;;
243: ps*) name=ps; chr=27;;
244: ad*) name=ad; chr=29;;
245: ik*) name=ik; chr=31;;
246: esac
247: case $unit in
248: 0|1|2|3|4|5|6|7)
249: umask 0
250: /etc/mknod ${name}${unit} c ${chr} ${unit}
251: umask 77
252: ;;
253: *)
254: echo bad unit for ${name} in: $i
255: ;;
256: esac
257: ;;
258:
259: local)
260: sh MAKEDEV.local
261: ;;
262: esac
263: done
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.