no copyright needed
[unix-history] / usr / src / etc / etc.pmax / MAKEDEV
CommitLineData
f0cc8554
KB
1#!/bin/sh -
2#
37ccbb3c 3# @(#)MAKEDEV 5.5 (Berkeley) %G%
f0cc8554
KB
4#
5
6# Device "make" file. Valid arguments:
7# std standard devices
8# local configuration specific devices
9# Tapes:
d23cd13a 10# tz* SCSI tapes, DEC TK50 cartridge tape
f0cc8554
KB
11# Disks:
12# rz* SCSI disks
13# vnd* "file" pseudo-disks
14# Terminal multiplexors:
15# dc* 4 channel serial interface (keyboard, mouse, modem, printer)
59ca21bc 16# scc* 82530 serial interface
f0cc8554
KB
17# Pseudo terminals:
18# pty* set of 16 master and slave pseudo terminals
19# Printers:
20# Call units:
21# Special purpose devices:
59ca21bc 22# NOTE: /dev/mouse should be a link to one of these for X windows.
f0cc8554 23# pm* raw interface to PMAX graphics devices
59ca21bc
RC
24# cfb* raw interface to turbochannel PMAG-BA color frame buffer
25# xcfb* raw interface to maxine graphics devices
26# mfb* raw interface to mono graphics devices
f0cc8554
KB
27
28PATH=/sbin:/bin/:/usr/bin:/usr/sbin
29umask 77
30for i
31do
32case $i in
33
34std)
35 mknod console c 0 0
36 mknod drum c 3 0 ; chmod 640 drum ; chgrp kmem drum
37 mknod kmem c 2 1 ; chmod 640 kmem ; chgrp kmem kmem
38 mknod mem c 2 0 ; chmod 640 mem ; chgrp kmem mem
39 mknod null c 2 2 ; chmod 666 null
40 mknod zero c 2 12 ; chmod 666 zero
41 mknod tty c 1 0 ; chmod 666 tty
42 mknod klog c 6 0 ; chmod 600 klog
43 mknod stdin c 7 0 ; chmod 666 stdin
44 mknod stdout c 7 1 ; chmod 666 stdout
45 mknod stderr c 7 2 ; chmod 666 stderr
46 mkdir fd > /dev/null 2>&1
47 (cd fd && eval `echo "" | awk ' BEGIN { \
48 for (i = 0; i < 64; i++) \
49 printf("mknod %d c 7 %d;", i, i)}'`)
50 chown -R bin.bin fd
51 chmod 555 fd
52 chmod 666 fd/*
53 ;;
54
55tz*)
56 umask 0 ; unit=`expr $i : '..\(.*\)'`
57 case $i in
58 tz*) chr=10;;
59 esac
60 case $unit in
61 0|1|2|3|4|5|6)
d23cd13a
RC
62 unit0=`expr $unit \* 16`
63 unit1=`expr $unit \* 16 + 1`
64 unit2=`expr $unit \* 16 + 2`
65 unit3=`expr $unit \* 16 + 3`
66 mknod rmt$unit c $chr $unit0
67 mknod nrmt$unit c $chr $unit1
68 mknod rmth$unit c $chr $unit2
69 mknod nrmth$unit c $chr $unit3
70 chmod 666 rmt$unit nrmt$unit rmth$unit nrmth$unit
f0cc8554
KB
71 ;;
72 *)
73 echo bad unit for tape in: $1
74 ;;
75 esac
76 umask 77
77 ;;
78
79rz*|vnd*)
80 umask 2 ; unit=`expr $i : '..\(.*\)'`
81 case $i in
82 rz*) name=rz; blk=0; chr=9;;
83 vnd*) name=vnd; blk=2; chr=11;;
84 esac
85 case $unit in
86 0|1|2|3|4|5|6)
87 mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2`
88 mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2`
89 if [ $name != vnd ]
90 then
91 mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0`
92 mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1`
93 mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3`
94 mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4`
95 mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5`
96 mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6`
97 mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7`
98 mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0`
99 mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1`
100 mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3`
101 mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4`
102 mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5`
103 mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6`
104 mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7`
105 fi
106 chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h]
107 chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h]
108 ;;
109 *)
110 echo bad unit for disk in: $i
111 ;;
112 esac
113 umask 77
114 ;;
115
116dc*)
117 unit=`expr $i : 'dc\(.*\)'`
118 case $unit in
119 0)
6c84a822
RC
120 mknod tty0 c 16 2
121 mknod tty1 c 16 3
f0cc8554
KB
122 ;;
123 *)
124 echo bad unit for dc in: $i
125 ;;
126 esac
127 ;;
128
59ca21bc
RC
129scc*)
130 unit=`expr $i : 'scc\(.*\)'`
131 case $unit in
132 0)
133 mknod tty0 c 17 2
134 mknod tty1 c 17 3
135 ;;
136 *)
137 echo bad unit for scc in: $i
138 ;;
139 esac
140 ;;
141
f0cc8554
KB
142pm*)
143 unit=`expr $i : 'pm\(.*\)'`
144 case $unit in
145 0)
59ca21bc 146 mknod pm0 c 8 0
f0cc8554
KB
147 ;;
148 *)
149 echo bad unit for pm in: $i
150 ;;
151 esac
152 ;;
153
59ca21bc
RC
154cfb*)
155 unit=`expr $i : 'cfb\(.*\)'`
156 case $unit in
157 0)
158 mknod cfb0 c 13 0
159 ;;
160 *)
161 echo bad unit for cfb in: $i
162 ;;
163 esac
164 ;;
165
166xcfb*)
167 unit=`expr $i : 'xcfb\(.*\)'`
168 case $unit in
169 0)
170 mknod xcfb0 c 14 0
171 ;;
172 *)
173 echo bad unit for xcfb in: $i
174 ;;
175 esac
176 ;;
177
178mfb*)
179 unit=`expr $i : 'mfb\(.*\)'`
180 case $unit in
181 0)
182 mknod mfb0 c 18 0
183 ;;
184 *)
185 echo bad unit for mfb in: $i
186 ;;
187 esac
188 ;;
189
f0cc8554
KB
190pty*)
191 class=`expr $i : 'pty\(.*\)'`
192 case $class in
193 0) offset=0 name=p;;
194 1) offset=16 name=q;;
195 2) offset=32 name=r;;
196 3) offset=48 name=s;;
197# Note that telnetd, rlogind, and xterm (at least) only look at p-s.
198 4) offset=64 name=t;;
199 *) echo bad unit for pty in: $i;;
200 esac
201 case $class in
202 0|1|2|3|4)
203 umask 0
204 eval `echo $offset $name | awk ' { b=$1; n=$2 } END {
205 for (i = 0; i < 16; i++)
206 printf("mknod tty%s%x c 4 %d; \
207 mknod pty%s%x c 5 %d; ", \
208 n, i, b+i, n, i, b+i); }'`
209 umask 77
210 if [ $class = 1 ]; then
211 mv ttyqf ttyv0; mv ptyqf ptyv0
212 fi
213 ;;
214 esac
215 ;;
216
217local)
218 umask 0
219 sh MAKEDEV.local
220 ;;
221
222*)
223 echo $i: unknown device
224 ;;
225esac
226done