|
|
1.1 ! root 1: #!/bin/sh - ! 2: ! 3: ## ! 4: # Copyright (c) 1999 Apple Computer, Inc. All rights reserved. ! 5: # ! 6: # @APPLE_LICENSE_HEADER_START@ ! 7: # ! 8: # Portions Copyright (c) 1999 Apple Computer, Inc. All Rights ! 9: # Reserved. This file contains Original Code and/or Modifications of ! 10: # Original Code as defined in and that are subject to the Apple Public ! 11: # Source License Version 1.1 (the "License"). You may not use this file ! 12: # except in compliance with the License. Please obtain a copy of the ! 13: # License at http://www.apple.com/publicsource and read it before using ! 14: # this file. ! 15: # ! 16: # The Original Code and all software distributed under the License are ! 17: # distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 18: # EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 19: # INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 20: # FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 21: # License for the specific language governing rights and limitations ! 22: # under the License. ! 23: # ! 24: # @APPLE_LICENSE_HEADER_END@ ! 25: ## ! 26: ! 27: # ! 28: # @(#)MAKEDEV 8.1 (Berkeley) 6/9/93 ! 29: # ! 30: # Device "make" file. Valid arguments: ! 31: # std standard devices ! 32: # rhapsody devices for rhapsody ! 33: # local configuration specific devices ! 34: # Tapes: ! 35: # st* SCSI mag tape driver ! 36: # Disks: ! 37: # rd* RAM disk ! 38: # od* Optical disk ! 39: # oc Optical disk controller ! 40: # hd* IDE disks ! 41: # sd* SCSI disks ! 42: # fd* Floppy disks ! 43: # Terminal multiplexors: ! 44: # tty[ab] scc terminal drivers ! 45: # Pseudo terminals: ! 46: # pty* set of 16 master and slave pseudo terminals ! 47: # Printers: ! 48: # np* NeXT Printer ! 49: # Call units: ! 50: # NONE ! 51: # Special purpose devices: ! 52: # vid* frame buffer ! 53: # ev* event driver ! 54: # sg* Generic SCSI Driver ! 55: # nvram Nonvolatile RAM driver ! 56: # hfs_sd* HFS partitions on SCSI disks ! 57: # hfs_hd* HFS partitions on IDE disks ! 58: # hfs_fd* HFS partition on floppy disks ! 59: umask 77 ! 60: PATH=/sbin:/bin/:/usr/bin:/usr/sbin:$PATH ! 61: export PATH ! 62: for i ! 63: do ! 64: case $i in ! 65: ! 66: rhapsody) ! 67: $0 std hd0 hd1 hfs_hd0 hfs_hd1 oc od0 od1 sd0 sd1 sd2 sd3 sd4 sd5 sd6 sd7 sd8 sd9 sd10 sd11 sd12 sd13 sd14 sd15 sc sg0 sg1 sg2 sg3 st0 st1 fd0 fd1 hfs_fd0 hfs_fd1 fc vol pty0 pty1 vid0 ev0 evs0 np0 nps0 pp nvram hfs_sd0 hfs_sd1 hfs_sd2 hfs_sd3 hfs_sd4 hfs_sd5 hfs_sd6 hfs_sd7 hfs_sd8 hfs_sd9 hfs_sd10 hfs_sd11 hfs_sd12 hfs_sd13 hfs_sd14 hfs_sd15 ! 68: ;; ! 69: ! 70: std) ! 71: mknod console c 0 0 ; chmod 622 console ! 72: mknod tty c 2 0 ; chmod 666 tty ! 73: mknod mem c 3 0 ; chmod 640 mem ; chgrp kmem mem ! 74: mknod kmem c 3 1 ; chmod 640 kmem ; chgrp kmem kmem ! 75: mknod null c 3 2 ; chmod 666 null ! 76: mknod dsp c 3 3 ; chmod 666 dsp ! 77: mknod klog c 6 0 ; chmod 600 klog ! 78: mknod drum c 7 0 ; chmod 640 drum ; chgrp kmem drum ! 79: mknod dialup0 c 16 0 ; chmod 600 dialup0 ! 80: mknod dialup1 c 16 1 ; chmod 600 dialup1 ! 81: mknod sound c 36 0 ; chmod 600 sound ! 82: ;; ! 83: ! 84: od*|rd*|sd*|hd*) ! 85: umask 2 ; unit=`expr $i : '..\(.*\)'` ! 86: case $i in ! 87: od*) name=od; blk=2; chr=9;; ! 88: rd*) name=rd; blk=5; chr=15;; ! 89: sd*) name=sd; blk=6; chr=14;; ! 90: hd*) name=hd; blk=3; chr=15;; ! 91: esac ! 92: case $unit in ! 93: 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|\ ! 94: 17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) ! 95: mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0` ! 96: mknod ${name}${unit}b b $blk `expr $unit '*' 8 + 1` ! 97: mknod ${name}${unit}c b $blk `expr $unit '*' 8 + 2` ! 98: mknod ${name}${unit}g b $blk `expr $unit '*' 8 + 6` ! 99: mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0` ! 100: mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1` ! 101: mknod r${name}${unit}c c $chr `expr $unit '*' 8 + 2` ! 102: mknod r${name}${unit}g c $chr `expr $unit '*' 8 + 6` ! 103: mknod ${name}${unit}d b $blk `expr $unit '*' 8 + 3` ! 104: mknod ${name}${unit}e b $blk `expr $unit '*' 8 + 4` ! 105: mknod ${name}${unit}f b $blk `expr $unit '*' 8 + 5` ! 106: mknod ${name}${unit}h b $blk `expr $unit '*' 8 + 7` ! 107: mknod r${name}${unit}d c $chr `expr $unit '*' 8 + 3` ! 108: mknod r${name}${unit}e c $chr `expr $unit '*' 8 + 4` ! 109: mknod r${name}${unit}f c $chr `expr $unit '*' 8 + 5` ! 110: mknod r${name}${unit}h c $chr `expr $unit '*' 8 + 7` ! 111: chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h] ! 112: chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h] ! 113: ;; ! 114: *) ! 115: echo bad unit for disk in: $i ! 116: ;; ! 117: esac ! 118: umask 77 ! 119: ;; ! 120: ! 121: # bknight - This case must precede the next one because it is a special case. ! 122: ! 123: hfs_fd*) ! 124: umask 2 ; unit=`expr $i : '......\(.*\)'` ! 125: case $i in ! 126: hfs_fd*) name=fd; blk=1; chr=41;; ! 127: esac ! 128: case $unit in ! 129: 0|1|2|3|4|5|6|7) ! 130: mknod ${name}${unit}_hfs_a b $blk `expr $unit '*' 8 + 128 + 0` ! 131: chgrp operator ${name}${unit}_hfs_a ! 132: chmod 660 ${name}${unit}_hfs_a ! 133: ;; ! 134: *) ! 135: echo bad unit for HFS disk in: $i ! 136: ;; ! 137: esac ! 138: umask 77 ! 139: ;; ! 140: ! 141: hfs_*) ! 142: umask 2 ; unit=`expr $i : '......\(.*\)'` ! 143: case $i in ! 144: hfs_sd*) name=sd; blk=6; chr=14;; ! 145: hfs_hd*) name=hd; blk=3; chr=15;; ! 146: esac ! 147: case $unit in ! 148: 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15) ! 149: mknod ${name}${unit}_hfs_a b $blk `expr $unit '*' 8 + 128 + 0` ! 150: mknod ${name}${unit}_hfs_b b $blk `expr $unit '*' 8 + 128 + 1` ! 151: mknod ${name}${unit}_hfs_c b $blk `expr $unit '*' 8 + 128 + 2` ! 152: mknod ${name}${unit}_hfs_g b $blk `expr $unit '*' 8 + 128 + 6` ! 153: mknod ${name}${unit}_hfs_d b $blk `expr $unit '*' 8 + 128 + 3` ! 154: mknod ${name}${unit}_hfs_e b $blk `expr $unit '*' 8 + 128 + 4` ! 155: mknod ${name}${unit}_hfs_f b $blk `expr $unit '*' 8 + 128 + 5` ! 156: mknod ${name}${unit}_hfs_h b $blk `expr $unit '*' 8 + 128 + 7` ! 157: chgrp operator ${name}${unit}_hfs_[a-h] ! 158: chmod 640 ${name}${unit}_hfs_[a-h] ! 159: ;; ! 160: *) ! 161: echo bad unit for HFS disk in: $i ! 162: ;; ! 163: esac ! 164: umask 77 ! 165: ;; ! 166: ! 167: fd*) ! 168: umask 2 ; unit=`expr $i : '..\(.*\)'` ! 169: name=fd; blk=1; chr=41; ! 170: case $unit in ! 171: 0|1|2|3|4|5|6|7) ! 172: mknod ${name}${unit}a b $blk `expr $unit '*' 8 + 0` ! 173: mknod r${name}${unit}a c $chr `expr $unit '*' 8 + 0` ! 174: mknod r${name}${unit}b c $chr `expr $unit '*' 8 + 1` ! 175: chgrp operator ${name}${unit}[a-b] r${name}${unit}[a-b] ! 176: chmod 660 ${name}${unit}[a-b] r${name}${unit}[a-b] ! 177: ;; ! 178: *) ! 179: echo bad unit for disk in: $i ! 180: ;; ! 181: esac ! 182: umask 77 ! 183: ;; ! 184: ! 185: oc) ! 186: mknod odc0 c 9 255 ; chmod 644 odc0 ! 187: ;; ! 188: ! 189: fc) ! 190: mknod fdc0 c 41 64 ; chmod 644 fdc0 ! 191: ;; ! 192: ! 193: sc) ! 194: mknod sdc0 c 14 128 ; chmod 644 sdc0 ! 195: ;; ! 196: ! 197: vol) ! 198: mknod vol0 c 42 0 ; chmod 644 vol0 ! 199: ;; ! 200: ! 201: pp) ! 202: mknod pp0 c 40 0 ; chmod 666 pp0 ! 203: ;; ! 204: ! 205: nvram) ! 206: mknod nvram c 37 0 ; chmod 600 nvram ! 207: ;; ! 208: ! 209: sg*) ! 210: umask 2 ; unit=`expr $i : '..\(.*\)'` ! 211: case $i in ! 212: sg*) chr=33;; ! 213: esac ! 214: case $unit in ! 215: 0|1|2|3) ! 216: mknod $i c $chr $unit ! 217: chgrp operator $i ! 218: chmod 666 $i ! 219: ;; ! 220: *) ! 221: echo bad unit for device in: $i ! 222: ;; ! 223: esac ! 224: umask 77 ! 225: ;; ! 226: ! 227: st*) ! 228: umask 2 ; unit=`expr $i : '..\(.*\)'` ! 229: case $i in ! 230: st*) chr=34;; ! 231: esac ! 232: case $unit in ! 233: 0|1) ! 234: one=`expr $unit '*' 8 + 1` ! 235: two=`expr $unit '*' 8 + 2` ! 236: three=`expr $unit '*' 8 + 3` ! 237: mknod rst$unit c $chr `expr $unit '*' 8` ! 238: mknod nrst$unit c $chr $one ! 239: mknod rxt$unit c $chr $two ! 240: mknod nrxt$unit c $chr $three ! 241: chgrp operator rst$unit ! 242: chgrp operator nrst$unit ! 243: chgrp operator rxt$unit ! 244: chgrp operator nrxt$unit ! 245: chmod 666 rst$unit ! 246: chmod 666 nrst$unit ! 247: chmod 666 rxt$unit ! 248: chmod 666 nrxt$unit ! 249: ;; ! 250: *) ! 251: echo bad unit for device in: $i ! 252: ;; ! 253: esac ! 254: umask 77 ! 255: ;; ! 256: ! 257: pty*) ! 258: class=`expr $i : 'pty\(.*\)'` ! 259: case $class in ! 260: 0) offset=0 name=p;; ! 261: 1) offset=16 name=q;; ! 262: 2) offset=32 name=r;; ! 263: 3) offset=48 name=s;; ! 264: 4) offset=64 name=t;; ! 265: 5) offset=80 name=u;; ! 266: *) echo bad unit for pty in: $i;; ! 267: esac ! 268: case $class in ! 269: 0|1|2|3|4|5) ! 270: umask 0 ! 271: eval `echo $offset $name | awk ' { b=$1; n=$2 } END { ! 272: for (i = 0; i < 16; i++) ! 273: printf("mknod tty%s%x c 4 %d; \ ! 274: mknod pty%s%x c 5 %d; ", \ ! 275: n, i, b+i, n, i, b+i); }'` ! 276: umask 77 ! 277: ;; ! 278: esac ! 279: ;; ! 280: ! 281: vid*) ! 282: name=vid; chr=13; ! 283: unit=`expr $i : 'vid\(.*\)'` ! 284: case $unit in ! 285: ! 286: 0|1|2|3|4|5|6|7) ! 287: umask 0 ! 288: mknod ${name}${unit} c ${chr} ${unit} ! 289: chmod 600 vid${unit} ! 290: umask 77 ! 291: ;; ! 292: *) ! 293: echo bad unit for ${name} in: $i ! 294: ;; ! 295: esac ! 296: ;; ! 297: ! 298: ev*|evs*|np*|nps*|midi*|ipl*) ! 299: case $i in ! 300: nps*) ! 301: name=nps; chr=39; ! 302: unit=`expr $i : 'nps\(.*\)'` ! 303: ;; ! 304: np*) ! 305: name=np; chr=8; ! 306: unit=`expr $i : 'np\(.*\)'` ! 307: ;; ! 308: ev?) ! 309: name=ev; chr=10; ! 310: unit=`expr $i : 'ev\(.*\)'` ! 311: ;; ! 312: evs?) ! 313: name=evs; chr=40; ! 314: unit=`expr $i : 'evs\(.*\)'` ! 315: ;; ! 316: ipl*) ! 317: name=ipl; chr=35; ! 318: unit=`expr $i : 'ipl\(.*\)'` ! 319: ;; ! 320: esac ! 321: case $unit in ! 322: ! 323: 0|1|2|3|4|5|6|7) ! 324: umask 0 ! 325: mknod ${name}${unit} c ${chr} ${unit} ! 326: umask 77 ! 327: ;; ! 328: *) ! 329: echo bad unit for ${name} in: $i ! 330: ;; ! 331: esac ! 332: ;; ! 333: ! 334: tty?) ! 335: case $i in ! 336: tty?) ! 337: name=tty; chr=11; ! 338: unit=`expr $i : 'tty\(.*\)'` ! 339: ;; ! 340: esac ! 341: case $unit in ! 342: a|b) ! 343: numunit=`echo $unit | tr ab 01` ! 344: umask 0 ! 345: mknod ${name}${unit} c ${chr} ${numunit} ! 346: umask 77 ! 347: ;; ! 348: *) ! 349: echo bad unit for ${name} in: $i ! 350: ;; ! 351: esac ! 352: ;; ! 353: ! 354: local) ! 355: sh /private/dev/MAKEDEV.local ! 356: ;; ! 357: esac ! 358: done
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.