|
|
1.1 ! root 1: #!/bin/sh - ! 2: # ! 3: # Copyright (c) 1988 Regents of the University of California. ! 4: # All rights reserved. ! 5: # ! 6: # Redistribution and use in source and binary forms are permitted ! 7: # provided that the above copyright notice and this paragraph are ! 8: # duplicated in all such forms and that any documentation, ! 9: # advertising materials, and other materials related to such ! 10: # distribution and use acknowledge that the software was developed ! 11: # by the University of California, Berkeley. The name of the ! 12: # University may not be used to endorse or promote products derived ! 13: # from this software without specific prior written permission. ! 14: # THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 15: # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 16: # WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: # ! 18: # @(#)MAKEDEV 5.11 (Berkeley) 3/16/90 ! 19: # ! 20: # Device "make" file. Valid arguments: ! 21: # std standard devices ! 22: # local configuration specific devices ! 23: # Tapes: ! 24: # cy* Cipher ! 25: # Disks: ! 26: # dk* VDDC or SMDE disk on Versabus ! 27: # hd* VDDC or SMDE disk on VME ! 28: # Terminal multiplexors: ! 29: # vx* VIOC ! 30: # mp* MPCC ! 31: # Pseudo terminals: ! 32: # pty* set of 32 master and slave pseudo terminals ! 33: # Printers: ! 34: # Call units: ! 35: # Special purpose devices: ! 36: # enp* CMC Ethernet interface for loading RAM ! 37: # dr* IKON DR-11W ! 38: # ik* IKON DR-11W w/ E&S PS300 ! 39: # ! 40: HOME=/; export HOME ! 41: PATH=/sbin:/bin:/usr/sbin:/usr/bin ! 42: export PATH ! 43: ! 44: umask 77 ! 45: for i ! 46: do ! 47: case $i in ! 48: ! 49: std) ! 50: mknod CP c 0 0 ! 51: mknod console c 0 1 ! 52: mknod remote c 0 2 ! 53: mknod drum c 8 0 ; chmod 640 drum ; chgrp kmem drum ! 54: mknod mem c 3 0 ; chmod 640 mem ; chgrp kmem mem ! 55: mknod kmem c 3 1 ; chmod 640 kmem ; chgrp kmem kmem ! 56: mknod null c 3 2 ; chmod 666 null ! 57: mknod vmem c 3 3 ; chmod 640 vmem ; chgrp kmem vmem ! 58: mknod tty c 2 0 ; chmod 666 tty ! 59: mknod klog c 15 0 ; chmod 400 klog ! 60: mknod stdin c 21 0 ; chmod 666 stdin ! 61: mknod stdout c 21 1 ; chmod 666 stdout ! 62: mknod stderr c 21 2 ; chmod 666 stderr ! 63: mkdir fd > /dev/null 2>&1 ! 64: (cd fd && eval `echo "" | awk ' BEGIN { \ ! 65: for (i = 0; i < 64; i++) \ ! 66: printf("mknod %d c 21 %d;", i, i)}'`) ! 67: chown -R bin.bin fd ! 68: chmod 555 fd ! 69: chmod 666 fd/* ! 70: ;; ! 71: ! 72: cy*) ! 73: umask 0 ; unit=`expr $i : '..\(.*\)'` ! 74: case $i in ! 75: cy*) blk=3; chr=7 ;; ! 76: esac ! 77: case $unit in ! 78: 0|1|2|3|4|5|6|7) ! 79: four=`expr $unit + 4` ! 80: eight=`expr $unit + 8` ! 81: twelve=`expr $unit + 12` ! 82: # twenty=`expr $unit + 20` ! 83: mknod mt$unit b $blk $unit ! 84: mknod mt$four b $blk $four ! 85: mknod mt$eight b $blk $eight ! 86: mknod mt$twelve b $blk $twelve ! 87: ln mt$four nmt$unit ;: sanity ! 88: ln mt$twelve nmt$eight ;: ditto ! 89: mknod rmt$unit c $chr $unit ! 90: mknod rmt$four c $chr $four ! 91: mknod rmt$eight c $chr $eight ! 92: mknod rmt$twelve c $chr $twelve ! 93: ln rmt$four nrmt$unit ;: sanity ! 94: ln rmt$twelve nrmt$eight ;: ditto ! 95: # if [ $i = ut ] ! 96: # then ! 97: # mknod mt$twenty b $blk $twenty ! 98: # mknod rmt$twenty c $chr $twenty ! 99: # fi ! 100: umask 77 ! 101: ;; ! 102: *) ! 103: echo bad unit for tape in: $1 ! 104: ;; ! 105: esac ! 106: ;; ! 107: ! 108: hd*|dk*) ! 109: unit=`expr $i : '..\(.*\)'` ! 110: case $i in ! 111: dk*) name=dk; blk=1; chr=5;; ! 112: hd*) name=hd; blk=2; chr=6;; ! 113: esac ! 114: case $unit in ! 115: 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f|g|h) ! 116: case $unit in ! 117: a) u=10 ;; ! 118: b) u=11 ;; ! 119: c) u=12 ;; ! 120: d) u=13 ;; ! 121: e) u=14 ;; ! 122: f) u=15 ;; ! 123: g) u=16 ;; ! 124: h) u=17 ;; ! 125: *) u=$unit ;; ! 126: esac ! 127: ! 128: mknod ${name}${unit}a b $blk `expr $u '*' 8 + 0` ! 129: mknod ${name}${unit}b b $blk `expr $u '*' 8 + 1` ! 130: mknod ${name}${unit}c b $blk `expr $u '*' 8 + 2` ! 131: mknod ${name}${unit}d b $blk `expr $u '*' 8 + 3` ! 132: mknod ${name}${unit}e b $blk `expr $u '*' 8 + 4` ! 133: mknod ${name}${unit}f b $blk `expr $u '*' 8 + 5` ! 134: mknod ${name}${unit}g b $blk `expr $u '*' 8 + 6` ! 135: mknod ${name}${unit}h b $blk `expr $u '*' 8 + 7` ! 136: mknod r${name}${unit}a c $chr `expr $u '*' 8 + 0` ! 137: mknod r${name}${unit}b c $chr `expr $u '*' 8 + 1` ! 138: mknod r${name}${unit}c c $chr `expr $u '*' 8 + 2` ! 139: mknod r${name}${unit}d c $chr `expr $u '*' 8 + 3` ! 140: mknod r${name}${unit}e c $chr `expr $u '*' 8 + 4` ! 141: mknod r${name}${unit}f c $chr `expr $u '*' 8 + 5` ! 142: mknod r${name}${unit}g c $chr `expr $u '*' 8 + 6` ! 143: mknod r${name}${unit}h c $chr `expr $u '*' 8 + 7` ! 144: ! 145: chmod 640 ${name}${unit}[a-h] ! 146: chgrp operator ${name}${unit}[a-h] ! 147: chmod 640 r${name}${unit}[a-h] ! 148: chgrp operator r${name}${unit}[a-h] ! 149: ;; ! 150: *) ! 151: echo bad unit for disk in: $i ! 152: ;; ! 153: esac ! 154: ;; ! 155: ! 156: vx*|mp*) ! 157: case $i in ! 158: vx*) name=vx; major=1; count=16; ! 159: unit=`expr $i : "$name\(.*\)"` ! 160: case $unit in ! 161: 0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f) ch=$unit ;; ! 162: *) echo bad unit for $name in: $i ;; ! 163: esac ! 164: ;; ! 165: mp*) name=mp; major=12; count=16; ! 166: unit=`expr $i : "$name\(.*\)"` ! 167: case $unit in ! 168: 0) ch=A ;; 1) ch=B ;; 2) ch=C ;; 3) ch=D ;; ! 169: 4) ch=E ;; 5) ch=F ;; 6) ch=G ;; 7) ch=H ;; ! 170: 8) ch=I ;; 9) ch=J ;; a) ch=K ;; b) ch=L ;; ! 171: c) ch=M ;; d) ch=N ;; e) ch=O ;; f) ch=P ;; ! 172: *) echo bad unit for $name in: $i ;; ! 173: esac ! 174: ;; ! 175: esac ! 176: ! 177: case $unit in ! 178: a) un=10 ;; b) un=11 ;; c) un=12 ;; d) un=13 ;; ! 179: e) un=14 ;; f) un=15 ;; *) un=$unit ;; ! 180: esac ! 181: ! 182: umask 044 ! 183: eval `echo $ch $major $count $un | ! 184: awk ' { ch = $1; u = $3 * $4; m = $2; cnt = $3; nd = $4 } END { ! 185: if (m == 12) ! 186: printf("mknod mpcc%d c 11 %d; /bin/chmod 0600 mpcc%d; ",nd,u,nd); ! 187: for (i = 0; i < cnt; i++) ! 188: if (i < 10) ! 189: printf("mknod tty%s%x c %d %d; ",ch,i,m,u+i); ! 190: else ! 191: printf("mknod tty%s%c c %d %d; ",ch,87+i,m,u+i); }'` ! 192: umask 77 ! 193: ;; ! 194: ! 195: pty*) ! 196: class=`expr $i : 'pty\(.*\)'` ! 197: case $class in ! 198: 0) offset=0 name=p;; ! 199: 1) offset=16 name=q;; ! 200: 2) offset=32 name=r;; ! 201: 3) offset=48 name=s;; ! 202: 4) offset=64 name=s;; ! 203: 5) offset=80 name=s;; ! 204: *) echo bad unit for pty in: $i;; ! 205: esac ! 206: case $class in ! 207: 0|1|2|3|4|5) ! 208: umask 0 ! 209: eval `echo $offset $name | awk ' { b=$1; n=$2 } END { ! 210: for (i = 0; i < 16; i++) ! 211: printf("mknod tty%s%x c 9 %d; \ ! 212: mknod pty%s%x c 10 %d; ", \ ! 213: n, i, b+i, n, i, b+i); }'` ! 214: umask 77 ! 215: ;; ! 216: esac ! 217: ;; ! 218: ! 219: enp*) ! 220: unit=`expr $i : 'enp\(.*\)'` ! 221: case $unit in ! 222: [0-6]) ! 223: mknod enp${unit}ram c 16 $unit; chmod 644 enp${unit}ram ! 224: ;; ! 225: *) ! 226: echo bad unit for enp in: $i ! 227: ;; ! 228: esac ! 229: ;; ! 230: ! 231: dr*) ! 232: unit=`expr $i : 'dr\(.*\)'` ! 233: case $unit in ! 234: [0-6]) ! 235: mknod dr${unit} c 18 $unit; chmod 644 dr${unit} ! 236: ;; ! 237: *) ! 238: echo bad unit for dr in: $i ! 239: ;; ! 240: esac ! 241: ;; ! 242: ! 243: ik*) ! 244: unit=`expr $i : 'ik\(.*\)'` ! 245: case $unit in ! 246: [0-9]) ! 247: mknod ik${unit} c 20 $unit; chmod 644 ik${unit} ! 248: ;; ! 249: *) ! 250: echo bad unit for ik in: $i ! 251: ;; ! 252: esac ! 253: ;; ! 254: ! 255: local) ! 256: sh MAKEDEV.local ! 257: ;; ! 258: esac ! 259: done
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.