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