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