Commit | Line | Data |
---|---|---|
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 | # | |
22 | umask 77 | |
23 | for i | |
24 | do | |
25 | case $i in | |
26 | ||
27 | std) | |
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 | |
40 | cy*) | |
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 | ||
76 | dk*) | |
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 | ||
115 | vx*) | |
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 | ||
142 | pty*) | |
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 | ||
172 | enp*) | |
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 | ||
184 | dr*) | |
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 | ||
196 | ik*) | |
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 | ||
208 | local) | |
209 | sh MAKEDEV.local | |
210 | ;; | |
211 | esac | |
212 | done |