Annotation of 43BSDReno/etc/etc.tahoe/MAKEDEV, revision 1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.