diff --git a/src/etc/etc.i386/MAKEDEV b/src/etc/etc.i386/MAKEDEV index bfaa0b8a..3535cf1b 100644 --- a/src/etc/etc.i386/MAKEDEV +++ b/src/etc/etc.i386/MAKEDEV @@ -1,6 +1,6 @@ #!/bin/sh - # -# $OpenBSD: MAKEDEV,v 1.73 1999/08/20 17:00:36 downsj Exp $ +# $OpenBSD: MAKEDEV,v 1.74 1999/12/05 19:19:08 mickey Exp $ # $NetBSD: MAKEDEV,v 1.40 1996/03/31 00:50:47 perry Exp $ # # Copyright (c) 1990 The Regents of the University of California. @@ -97,6 +97,7 @@ PATH=/sbin:/usr/sbin:/bin:/usr/bin umask 77 +this=$0 hex () { @@ -111,45 +112,105 @@ hex () esac } +dodisk () +{ + rm -f ${1}${2}? r${1}${2}? + n=$(( $5*16 + $6 )) + mknod ${1}${2}a b $3 $n + mknod ${1}${2}b b $3 $(( $n + 1 )) + mknod ${1}${2}c b $3 $(( $n + 2 )) + mknod ${1}${2}d b $3 $(( $n + 3 )) + mknod ${1}${2}e b $3 $(( $n + 4 )) + mknod ${1}${2}f b $3 $(( $n + 5 )) + mknod ${1}${2}g b $3 $(( $n + 6 )) + mknod ${1}${2}h b $3 $(( $n + 7 )) + mknod ${1}${2}i b $3 $(( $n + 8 )) + mknod ${1}${2}j b $3 $(( $n + 9 )) + mknod ${1}${2}k b $3 $(( $n + 10 )) + mknod ${1}${2}l b $3 $(( $n + 11 )) + mknod ${1}${2}m b $3 $(( $n + 12 )) + mknod ${1}${2}n b $3 $(( $n + 13 )) + mknod ${1}${2}o b $3 $(( $n + 14 )) + mknod ${1}${2}p b $3 $(( $n + 15 )) + mknod r${1}${2}a c $4 $n + mknod r${1}${2}b c $4 $(( $n + 1 )) + mknod r${1}${2}c c $4 $(( $n + 2 )) + mknod r${1}${2}d c $4 $(( $n + 3 )) + mknod r${1}${2}e c $4 $(( $n + 4 )) + mknod r${1}${2}f c $4 $(( $n + 5 )) + mknod r${1}${2}g c $4 $(( $n + 6 )) + mknod r${1}${2}h c $4 $(( $n + 7 )) + mknod r${1}${2}i c $4 $(( $n + 8 )) + mknod r${1}${2}j c $4 $(( $n + 9 )) + mknod r${1}${2}k c $4 $(( $n + 10 )) + mknod r${1}${2}l c $4 $(( $n + 11 )) + mknod r${1}${2}m c $4 $(( $n + 12 )) + mknod r${1}${2}n c $4 $(( $n + 13 )) + mknod r${1}${2}o c $4 $(( $n + 14 )) + mknod r${1}${2}p c $4 $(( $n + 15 )) + chown root.operator ${1}${2}[a-p] r${1}${2}[a-p] + chmod 640 ${1}${2}[a-p] r${1}${2}[a-p] +} + +unt() +{ + # XXX pdksh can't seem to deal with locally scoped variables + # in ${foo#$bar} expansions + arg="$1" + tmp="${arg#[a-zA-Z]*}" + tmp="${tmp%*[a-zA-Z]}" + while [ "$tmp" != "$arg" ] + do + arg=$tmp + tmp="${arg#[a-zA-Z]*}" + tmp="${tmp%*[a-zA-Z]}" + done + echo $arg +} + for i do + +unit=`unt $i` +[ "$unit" ] || unit=0 + case $i in all) - sh MAKEDEV std fd wt0 wd0 wd1 wd2 wd3 sd0 sd1 sd2 - sh MAKEDEV tty00 tty01 tty02 tty03 pty0 pty1 st0 st1 ch0 cd0 cd1 - sh MAKEDEV ttyc0 ttyc1 ttyc2 ttyc3 ttyc4 ttyc5 ttyc6 ttyc7 - sh MAKEDEV mcd0 vnd0 vnd1 lpa0 lpa1 ccd0 ccd1 ccd2 ccd3 - sh MAKEDEV raid0 raid1 raid2 raid3 lpt0 lpt1 lpt2 - sh MAKEDEV ttyC0 ttyC1 ttyC2 ttyC3 ttyC4 ttyC5 - sh MAKEDEV ipl tun0 tun1 tun2 - sh MAKEDEV bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 - sh MAKEDEV speaker lkm mms0 lms0 pms0 audio joy0 joy1 apm local - sh MAKEDEV random uk0 uk1 ss0 ss1 pctr bktr0 tuner0 wdt0 - sh MAKEDEV fd0 fd0B fd0C fd0D fd0E fd0F fd0G fd0H - sh MAKEDEV fd1 fd1B fd1C fd1D fd1E fd1F fd1G fd1H - sh MAKEDEV xfs0 music - sh MAKEDEV rmidi0 rmidi1 rmidi2 rmidi3 rmidi4 rmidi5 rmidi6 rmidi7 - sh MAKEDEV usbs + sh $this std fd wt0 wd0 wd1 wd2 wd3 sd0 sd1 sd2 + sh $this tty00 tty01 tty02 tty03 pty0 pty1 st0 st1 ch0 cd0 cd1 + sh $this ttyc0 ttyc1 ttyc2 ttyc3 ttyc4 ttyc5 ttyc6 ttyc7 + sh $this mcd0 vnd0 vnd1 lpa0 lpa1 ccd0 ccd1 ccd2 ccd3 + sh $this raid0 raid1 raid2 raid3 lpt0 lpt1 lpt2 + sh $this ttyC0 ttyC1 ttyC2 ttyC3 ttyC4 ttyC5 + sh $this ipl tun0 tun1 tun2 + sh $this bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 + sh $this speaker lkm mms0 lms0 pms0 audio joy0 joy1 apm local + sh $this random uk0 uk1 ss0 ss1 pctr bktr0 tuner0 wdt0 + sh $this fd0 fd0B fd0C fd0D fd0E fd0F fd0G fd0H + sh $this fd1 fd1B fd1C fd1D fd1E fd1F fd1G fd1H + sh $this xfs0 music + sh $this rmidi0 rmidi1 rmidi2 rmidi3 rmidi4 rmidi5 rmidi6 rmidi7 + sh $this usbs # MISSING: -# sh MAKEDEV mouse-? +# sh $this mouse-? ;; floppy) - sh MAKEDEV std wt0 fd0 wd0 wd1 sd0 sd1 tty00 tty01 - sh MAKEDEV st0 cd0 ttyC0 random + sh $this std wt0 fd0 wd0 wd1 sd0 sd1 tty00 tty01 + sh $this st0 cd0 ttyC0 random ;; ramdisk) - sh MAKEDEV std lkm tty00 tty01 tty02 tty03 ttyC0 random - sh MAKEDEV wt0 fd0 rd0 wd0 wd1 wd2 wd3 bpf0 - sh MAKEDEV sd0 sd1 sd2 sd3 st0 st1 cd0 cd1 mcd0 + sh $this std lkm tty00 tty01 tty02 tty03 ttyC0 random + sh $this wt0 fd0 rd0 wd0 wd1 wd2 wd3 bpf0 + sh $this sd0 sd1 sd2 sd3 st0 st1 cd0 cd1 mcd0 ;; usbs) - sh MAKEDEV usb0 usb1 - sh MAKEDEV uhid0 uhid1 uhid2 uhid3 -# sh MAKEDEV ulpt0 ulpt1 + sh $this usb0 usb1 + sh $this uhid0 uhid1 uhid2 uhid3 +# sh $this ulpt0 ulpt1 ;; std) @@ -171,7 +232,6 @@ std) ;; usb*) - unit=`expr $i : 'usb\(.\).*'` rm -f usb$unit mknod usb$unit c 61 $unit chown root.wheel usb$unit @@ -179,7 +239,6 @@ usb*) ;; uhid*) - unit=`expr $i : 'uhid\(.\).*'` rm -f uhid$unit mknod uhid$unit c 62 $unit chown root.wheel uhid$unit @@ -187,7 +246,6 @@ uhid*) ;; #ulpt*) -# unit=`expr $i : 'ulpt\(.\).*'` # rm -f ulpt$unit # mknod ulpt$unit c ?? $unit # chown root.wheel ulpt$unit @@ -195,28 +253,25 @@ uhid*) # ;; ugen*) - unit=`expr $i : 'ugen\(.\).*'` for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 do rm -f ugen$unit.$j - mknod ugen$unit.$j c 63 `expr $unit '*' 16 + $j` + mknod ugen$unit.$j c 63 $(( $unit * 16 + $j )) chown root.wheel ugen$unit.$j chmod 600 ugen$unit.$j done ;; ttyC*) - unit=`expr $i : 'ttyC\(.*\)'` rm -f ttyC$unit mknod ttyC$unit c 12 $unit chown root.wheel ttyC$unit ;; ttyc*) - unit=`expr $i : 'ttyc\(.*\)'` rm -f ttyc$unit cuac$unit mknod ttyc$unit c 38 $unit - mknod cuac$unit c 38 `expr $unit + 128` + mknod cuac$unit c 38 $(( $unit + 128 )) chown uucp.dialer ttyc$unit cuac$unit chmod 660 ttyc$unit cuac$unit ;; @@ -232,46 +287,36 @@ fd) ;; wt*) - umask 2 ; unit=`expr $i : '..\(.*\)'` + umask 2 case $i in wt*) name=wt; chr=10; blk=3;; esac rm -f $name$unit n$name$unit r$name$unit nr$name$unit - mknod $name$unit b $blk `expr $unit '*' 8 + 0` - mknod n$name$unit b $blk `expr $unit '*' 8 + 4` - mknod r$name$unit c $chr `expr $unit '*' 8 + 0` - mknod nr$name$unit c $chr `expr $unit '*' 8 + 4` + mknod $name$unit b $blk $(( $unit * 8 + 0 )) + mknod n$name$unit b $blk $(( $unit * 8 + 4 )) + mknod r$name$unit c $chr $(( $unit * 8 + 0 )) + mknod nr$name$unit c $chr $(( $unit * 8 + 4 )) chown root.operator $name$unit n$name$unit r$name$unit nr$name$unit chmod 640 $name$unit n$name$unit r$name$unit nr$name$unit umask 77 ;; -rd*) - umask 2 ; unit=`expr $i : '.*d\(.*\)'` - rm -f rd${unit}a rd${unit}c rrd${unit}a rrd${unit}c - mknod rd${unit}a b 17 `expr $unit '*' 16 + 0` - mknod rd${unit}c b 17 `expr $unit '*' 16 + 2` - mknod rrd${unit}a c 47 `expr $unit '*' 16 + 0` - mknod rrd${unit}c c 47 `expr $unit '*' 16 + 2` - chown root.operator rd${unit}[ac] rrd${unit}[ac] - chmod 640 rd${unit}[ac] rrd${unit}[ac] - umask 77 - ;; - fd*) - umask 2 ; typnam=`expr $i : 'fd.*\(.\)$'` - unit=`expr $i : 'fd\(.\).*'` + umask 2 + unit=${i##fd} + typnam=${unit#?} + unit=${unit%%[!0-9]} case $typnam in - 0|1) typnam=; typnum=0;; # no type specified, assume A - A) typnam=; typnum=0;; - B) typnum=1;; - C) typnum=2;; - D) typnum=3;; - E) typnum=4;; - F) typnum=5;; - G) typnum=6;; - H) typnum=7;; - *) echo bad type $typnam for $i; exit 1;; + "") typnum=0;; # no type specified, assume A + A) typnam=; typnum=0;; + B) typnum=1;; + C) typnum=2;; + D) typnum=3;; + E) typnum=4;; + F) typnum=5;; + G) typnum=6;; + H) typnum=7;; + *) echo bad type $typnam for $i; exit 1;; esac case $unit in 0|1) blk=2; chr=9;; @@ -279,154 +324,75 @@ fd*) esac nam=fd${unit}${typnam} rm -f ${nam}? r${nam}? - basenum=`expr $unit '*' 128 + $typnum '*' 16` - mknod ${nam}a b $blk `expr $basenum + 0` - mknod ${nam}b b $blk `expr $basenum + 1` - mknod ${nam}c b $blk `expr $basenum + 2` - #mknod ${nam}d b $blk `expr $basenum + 3` - #mknod ${nam}e b $blk `expr $basenum + 4` - #mknod ${nam}f b $blk `expr $basenum + 5` - #mknod ${nam}g b $blk `expr $basenum + 6` - #mknod ${nam}h b $blk `expr $basenum + 7` - #mknod ${nam}i b $blk `expr $basenum + 8` - #mknod ${nam}j b $blk `expr $basenum + 9` - #mknod ${nam}k b $blk `expr $basenum + 10` - #mknod ${nam}l b $blk `expr $basenum + 11` - #mknod ${nam}m b $blk `expr $basenum + 12` - #mknod ${nam}n b $blk `expr $basenum + 13` - #mknod ${nam}o b $blk `expr $basenum + 14` - #mknod ${nam}p b $blk `expr $basenum + 15` - mknod r${nam}a c $chr `expr $basenum + 0` - mknod r${nam}b c $chr `expr $basenum + 1` - mknod r${nam}c c $chr `expr $basenum + 2` - #mknod r${nam}d c $chr `expr $basenum + 3` - #mknod r${nam}e c $chr `expr $basenum + 4` - #mknod r${nam}f c $chr `expr $basenum + 5` - #mknod r${nam}g c $chr `expr $basenum + 6` - #mknod r${nam}h c $chr `expr $basenum + 7` - #mknod r${nam}i c $chr `expr $basenum + 8` - #mknod r${nam}j c $chr `expr $basenum + 9` - #mknod r${nam}k c $chr `expr $basenum + 10` - #mknod r${nam}l c $chr `expr $basenum + 11` - #mknod r${nam}m c $chr `expr $basenum + 12` - #mknod r${nam}n c $chr `expr $basenum + 13` - #mknod r${nam}o c $chr `expr $basenum + 14` - #mknod r${nam}p c $chr `expr $basenum + 15` + basenum=$(( $unit * 128 + $typnum * 16 )) + mknod ${nam}a b $blk $(( $basenum + 0 )) + mknod ${nam}b b $blk $(( $basenum + 1 )) + mknod ${nam}c b $blk $(( $basenum + 2 )) + #mknod ${nam}d b $blk $(( $basenum + 3 )) + #mknod ${nam}e b $blk $(( $basenum + 4 )) + #mknod ${nam}f b $blk $(( $basenum + 5 )) + #mknod ${nam}g b $blk $(( $basenum + 6 )) + #mknod ${nam}h b $blk $(( $basenum + 7 )) + #mknod ${nam}i b $blk $(( $basenum + 8 )) + #mknod ${nam}j b $blk $(( $basenum + 9 )) + #mknod ${nam}k b $blk $(( $basenum + 10 )) + #mknod ${nam}l b $blk $(( $basenum + 11 )) + #mknod ${nam}m b $blk $(( $basenum + 12 )) + #mknod ${nam}n b $blk $(( $basenum + 13 )) + #mknod ${nam}o b $blk $(( $basenum + 14 )) + #mknod ${nam}p b $blk $(( $basenum + 15 )) + mknod r${nam}a c $chr $(( $basenum + 0 )) + mknod r${nam}b c $chr $(( $basenum + 1 )) + mknod r${nam}c c $chr $(( $basenum + 2 )) + #mknod r${nam}d c $chr $(( $basenum + 3 )) + #mknod r${nam}e c $chr $(( $basenum + 4 )) + #mknod r${nam}f c $chr $(( $basenum + 5 )) + #mknod r${nam}g c $chr $(( $basenum + 6 )) + #mknod r${nam}h c $chr $(( $basenum + 7 )) + #mknod r${nam}i c $chr $(( $basenum + 8 )) + #mknod r${nam}j c $chr $(( $basenum + 9 )) + #mknod r${nam}k c $chr $(( $basenum + 10 )) + #mknod r${nam}l c $chr $(( $basenum + 11 )) + #mknod r${nam}m c $chr $(( $basenum + 12 )) + #mknod r${nam}n c $chr $(( $basenum + 13 )) + #mknod r${nam}o c $chr $(( $basenum + 14 )) + #mknod r${nam}p c $chr $(( $basenum + 15 )) chown root.operator ${nam}[a-p] r${nam}[a-p] chmod 640 ${nam}[a-p] r${nam}[a-p] umask 77 ;; ccd*|sd*|wd[0-9]*|raid*) - umask 2 ; unit=`expr $i : '.*d\(.*\)'` + umask 2 case $i in - ccd*) name=ccd; blk=16; chr=18;; - fd*) name=fd; blk=2; chr=9;; - raid*) name=raid; blk=19; chr=54;; - sd*) name=sd; blk=4; chr=13;; - wd*) name=wd; blk=0; chr=3;; + ccd*) name=ccd; blk=16; chr=18;; + raid*) name=raid; blk=19; chr=54;; + sd*) name=sd; blk=4; chr=13;; + wd*) name=wd; blk=0; chr=3;; esac - rm -f $name$unit? r$name$unit? - mknod ${name}${unit}a b $blk `expr $unit '*' 16 + 0` - mknod ${name}${unit}b b $blk `expr $unit '*' 16 + 1` - mknod ${name}${unit}c b $blk `expr $unit '*' 16 + 2` - mknod ${name}${unit}d b $blk `expr $unit '*' 16 + 3` - mknod ${name}${unit}e b $blk `expr $unit '*' 16 + 4` - mknod ${name}${unit}f b $blk `expr $unit '*' 16 + 5` - mknod ${name}${unit}g b $blk `expr $unit '*' 16 + 6` - mknod ${name}${unit}h b $blk `expr $unit '*' 16 + 7` - mknod ${name}${unit}i b $blk `expr $unit '*' 16 + 8` - mknod ${name}${unit}j b $blk `expr $unit '*' 16 + 9` - mknod ${name}${unit}k b $blk `expr $unit '*' 16 + 10` - mknod ${name}${unit}l b $blk `expr $unit '*' 16 + 11` - mknod ${name}${unit}m b $blk `expr $unit '*' 16 + 12` - mknod ${name}${unit}n b $blk `expr $unit '*' 16 + 13` - mknod ${name}${unit}o b $blk `expr $unit '*' 16 + 14` - mknod ${name}${unit}p b $blk `expr $unit '*' 16 + 15` - mknod r${name}${unit}a c $chr `expr $unit '*' 16 + 0` - mknod r${name}${unit}b c $chr `expr $unit '*' 16 + 1` - mknod r${name}${unit}c c $chr `expr $unit '*' 16 + 2` - mknod r${name}${unit}d c $chr `expr $unit '*' 16 + 3` - mknod r${name}${unit}e c $chr `expr $unit '*' 16 + 4` - mknod r${name}${unit}f c $chr `expr $unit '*' 16 + 5` - mknod r${name}${unit}g c $chr `expr $unit '*' 16 + 6` - mknod r${name}${unit}h c $chr `expr $unit '*' 16 + 7` - mknod r${name}${unit}i c $chr `expr $unit '*' 16 + 8` - mknod r${name}${unit}j c $chr `expr $unit '*' 16 + 9` - mknod r${name}${unit}k c $chr `expr $unit '*' 16 + 10` - mknod r${name}${unit}l c $chr `expr $unit '*' 16 + 11` - mknod r${name}${unit}m c $chr `expr $unit '*' 16 + 12` - mknod r${name}${unit}n c $chr `expr $unit '*' 16 + 13` - mknod r${name}${unit}o c $chr `expr $unit '*' 16 + 14` - mknod r${name}${unit}p c $chr `expr $unit '*' 16 + 15` - chown root.operator ${name}${unit}[a-p] r${name}${unit}[a-p] - chmod 640 ${name}${unit}[a-p] r${name}${unit}[a-p] + dodisk $name $unit $blk $chr $unit 0 umask 77 ;; vnd*) - umask 2 ; unit=`expr $i : 'vnd\(.*\)'` - if [ -z "$unit" ]; then - echo vnd requires a unit number - exit 1 - fi - for name in vnd svnd; do - blk=14; chr=41; - case $name in - vnd) off=0;; - svnd) off=128;; - esac - rm -f $name$unit? r$name$unit? - mknod ${name}${unit}a b $blk `expr $unit '*' 16 + $off + 0` - mknod ${name}${unit}b b $blk `expr $unit '*' 16 + $off + 1` - mknod ${name}${unit}c b $blk `expr $unit '*' 16 + $off + 2` - mknod ${name}${unit}d b $blk `expr $unit '*' 16 + $off + 3` - mknod ${name}${unit}e b $blk `expr $unit '*' 16 + $off + 4` - mknod ${name}${unit}f b $blk `expr $unit '*' 16 + $off + 5` - mknod ${name}${unit}g b $blk `expr $unit '*' 16 + $off + 6` - mknod ${name}${unit}h b $blk `expr $unit '*' 16 + $off + 7` - mknod ${name}${unit}i b $blk `expr $unit '*' 16 + $off + 8` - mknod ${name}${unit}j b $blk `expr $unit '*' 16 + $off + 9` - mknod ${name}${unit}k b $blk `expr $unit '*' 16 + $off + 10` - mknod ${name}${unit}l b $blk `expr $unit '*' 16 + $off + 11` - mknod ${name}${unit}m b $blk `expr $unit '*' 16 + $off + 12` - mknod ${name}${unit}n b $blk `expr $unit '*' 16 + $off + 13` - mknod ${name}${unit}o b $blk `expr $unit '*' 16 + $off + 14` - mknod ${name}${unit}p b $blk `expr $unit '*' 16 + $off + 15` - mknod r${name}${unit}a c $chr `expr $unit '*' 16 + $off + 0` - mknod r${name}${unit}b c $chr `expr $unit '*' 16 + $off + 1` - mknod r${name}${unit}c c $chr `expr $unit '*' 16 + $off + 2` - mknod r${name}${unit}d c $chr `expr $unit '*' 16 + $off + 3` - mknod r${name}${unit}e c $chr `expr $unit '*' 16 + $off + 4` - mknod r${name}${unit}f c $chr `expr $unit '*' 16 + $off + 5` - mknod r${name}${unit}g c $chr `expr $unit '*' 16 + $off + 6` - mknod r${name}${unit}h c $chr `expr $unit '*' 16 + $off + 7` - mknod r${name}${unit}i c $chr `expr $unit '*' 16 + $off + 8` - mknod r${name}${unit}j c $chr `expr $unit '*' 16 + $off + 9` - mknod r${name}${unit}k c $chr `expr $unit '*' 16 + $off + 10` - mknod r${name}${unit}l c $chr `expr $unit '*' 16 + $off + 11` - mknod r${name}${unit}m c $chr `expr $unit '*' 16 + $off + 12` - mknod r${name}${unit}n c $chr `expr $unit '*' 16 + $off + 13` - mknod r${name}${unit}o c $chr `expr $unit '*' 16 + $off + 14` - mknod r${name}${unit}p c $chr `expr $unit '*' 16 + $off + 15` - chown root.operator ${name}${unit}[a-p] r${name}${unit}[a-p] - chmod 640 ${name}${unit}[a-p] r${name}${unit}[a-p] - done + umask 2 + blk=14; chr=41; + dodisk vnd $unit $blk $chr $unit 0 + dodisk svnd $unit $blk $chr $unit 128 umask 77 ;; tty0*) - unit=`expr $i : 'tty0\(.*\)'` + unit=${i##tty0} rm -f com0$unit tty0$unit cua0$unit mknod tty0$unit c 8 $unit - mknod cua0$unit c 8 `expr $unit + 128` + mknod cua0$unit c 8 $(( $unit + 128 )) chown uucp.dialer tty0$unit cua0$unit chmod 660 tty0$unit cua0$unit ;; pty*) - class=`expr $i : 'pty\(.*\)'` - case $class in + case $unit in 0) offset=0 name=p;; 1) offset=16 name=q;; 2) offset=32 name=r;; @@ -443,40 +409,36 @@ pty*) 13) offset=208 name=R;; 14) offset=224 name=S;; 15) offset=240 name=T;; - *) echo bad unit for pty in: $i;; - esac - case $class in - 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15) - umask 0 - n=0 - while [ $n -lt 16 ] - do - nam=$name`hex $n` - rm -f {tty,pty}$nam - mknod tty$nam c 5 "$(( $offset + $n ))" - mknod pty$nam c 6 "$(( $offset + $n ))" - n="$(( $n + 1 ))" - done - umask 77 - ;; + *) echo bad unit for pty in: $i; continue ;; esac + umask 0 + n=0 + while [ $n -lt 16 ] + do + nam=$name`hex $n` + rm -f {tty,pty}$nam + mknod tty$nam c 5 "$(( $offset + $n ))" + mknod pty$nam c 6 "$(( $offset + $n ))" + let n=n+1 + done + umask 77 ;; - st*) - umask 2 ; unit=`expr $i : '..\(.*\)'` + umask 2 case $i in st*) name=st; chr=14; blk=5;; esac rm -f $name$unit n$name$unit e$name$unit en$name$unit \ r$name$unit nr$name$unit er$name$unit enr$name$unit - mknod $name$unit b $blk `expr $unit '*' 16 + 0` - mknod n$name$unit b $blk `expr $unit '*' 16 + 1` - mknod e$name$unit b $blk `expr $unit '*' 16 + 2` - mknod en$name$unit b $blk `expr $unit '*' 16 + 3` - mknod r$name$unit c $chr `expr $unit '*' 16 + 0` - mknod nr$name$unit c $chr `expr $unit '*' 16 + 1` - mknod er$name$unit c $chr `expr $unit '*' 16 + 2` - mknod enr$name$unit c $chr `expr $unit '*' 16 + 3` + n=$(( $unit*16 )) + mknod $name$unit b $blk $n + mknod n$name$unit b $blk $(( $n + 1 )) + mknod e$name$unit b $blk $(( $n + 2 )) + mknod en$name$unit b $blk $(( $n + 3 )) + mknod r$name$unit c $chr $n + mknod nr$name$unit c $chr $(( $n + 1 )) + mknod er$name$unit c $chr $(( $n + 2 )) + mknod enr$name$unit c $chr $(( $n + 3 )) chown root.operator $name$unit n$name$unit e$name$unit en$name$unit \ r$name$unit nr$name$unit er$name$unit enr$name$unit chmod 640 $name$unit n$name$unit e$name$unit en$name$unit \ @@ -485,7 +447,7 @@ st*) ;; ch*) - umask 2 ; unit=`expr $i : '..\(.*\)'` + umask 2 case $i in ch*) name=ch; chr=17;; esac @@ -496,35 +458,35 @@ ch*) umask 77 ;; -cd*|mcd*) - umask 2 ; unit=`expr $i : '.*cd\(.*\)'` +cd*|mcd*|rd*) + umask 2 case $i in - cd*) name=cd; blk=6; chr=15;; - mcd*) name=mcd; blk=7; chr=39;; + rd*) name=rd; blk=17; chr=47;; + cd*) name=cd; blk=6; chr=15;; + mcd*) name=mcd; blk=7; chr=39;; esac rm -f $name$unit? r$name$unit? - mknod ${name}${unit}a b $blk `expr $unit '*' 16 + 0` - mknod ${name}${unit}c b $blk `expr $unit '*' 16 + 2` - mknod r${name}${unit}a c $chr `expr $unit '*' 16 + 0` - mknod r${name}${unit}c c $chr `expr $unit '*' 16 + 2` + n=$(( $unit*16 )) + mknod ${name}${unit}a b $blk $n + mknod ${name}${unit}c b $blk $(( $n + 2 )) + mknod r${name}${unit}a c $chr $n + mknod r${name}${unit}c c $chr $(( $n + 2 )) chown root.operator ${name}${unit}[a-h] r${name}${unit}[a-h] chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h] umask 77 ;; lpt*|lpa*) - unit=`expr $i : '...\(.*\)'` case $i in lpt*) name=lpt; flags=0;; lpa*) name=lpa; flags=128;; esac rm -f $name$unit - mknod $name$unit c 16 `expr $unit + $flags` + mknod $name$unit c 16 $(( $unit + $flags )) chown root.wheel $name$unit ;; bpf*|tun[0-9]*) - unit=`expr $i : '...\(.*\)'` case $i in bpf*) name=bpf; chr=23;; tun*) name=tun; chr=40;; @@ -557,7 +519,6 @@ lkm) ;; mms*|lms*) - unit=`expr $i : '.ms\(.*\)'` case $i in mms*) name=mms; chr=35;; lms*) name=lms; chr=36;; @@ -568,7 +529,6 @@ mms*|lms*) ;; pms*) - unit=`expr $i : '.ms\(.*\)'` rm -f pms${unit} rm -f psm${unit} mknod pms${unit} c 37 0 @@ -578,33 +538,31 @@ pms*) ;; mouse*) # (XXX) - name=`expr $i : 'mouse-\(.*\)'` + name=${i##mouse-} if [ ! -c $name ]; then - $0 $name # make the appropriate device + /bin/sh $0 $name # make the appropriate device fi rm -f mouse ln -s $name mouse ;; audio*) - unit=${i#audio} - audio=audio$unit - sound=sound$unit - mixer=mixer$unit + [ "$unit" = "0" ] && n= || n=$unit + audio=audio$n + sound=sound$n + mixer=mixer$n + audioctl=audioctl$n major=42 - audioctl=audioctl$unit - if [ "$unit" = "" ]; then unit=0; fi rm -f $audio $sound $mixer $audioctl - mknod $sound c $major $(($unit + 0)) - mknod $audio c $major $(($unit + 128)) - mknod $mixer c $major $(($unit + 16)) - mknod $audioctl c $major $(($unit + 192)) + mknod $sound c $major $unit + mknod $audio c $major $(( $unit + 128 )) + mknod $mixer c $major $(( $unit + 16 )) + mknod $audioctl c $major $(( $unit + 192 )) chown root.wheel $audio $sound $mixer $audioctl chmod 666 $audio $sound $mixer $audioctl ;; joy*) - unit=`expr $i : 'joy\(.*\)'` rm -f joy$unit mknod joy$unit c 26 $unit chown root.wheel joy$unit @@ -612,7 +570,6 @@ joy*) ;; xfs*) - unit=`expr $i : 'xfs\(.*\)'` rm -f xfs$unit mknod xfs$unit c 51 $unit chown root.wheel xfs$unit @@ -620,7 +577,6 @@ xfs*) ;; rmidi*) - unit=${i#rmidi} major=52 rmidi=rmidi$unit rm -f $rmidi @@ -630,14 +586,13 @@ rmidi*) ;; music*) - unit=${i#music} - music=music$unit - sequencer=sequencer$unit + [ "$unit" = "0" ] && n= || n=$unit + music=music$n + sequencer=sequencer$n major=53 - if [ "$unit" = "" ]; then unit=0; fi rm -f $sequencer $music - mknod $music c $major $(($unit + 0)) - mknod $sequencer c $major $(($unit + 128)) + mknod $music c $major $(( $unit + 0 )) + mknod $sequencer c $major $(( $unit + 128 )) chown root.wheel $music $sequencer chmod 666 $music $sequencer ;; @@ -694,7 +649,6 @@ random|srandom|urandom|prandom|arandom) # ;; uk*) - unit=`expr $i : 'uk\(.*\)'` rm -f uk$unit mknod uk$unit c 20 $unit chown root.operator uk$unit @@ -702,7 +656,6 @@ uk*) ;; ss*) - unit=`expr $i : 'ss\(.*\)'` rm -f ss$unit mknod ss$unit c 19 $unit chown root.operator ss$unit @@ -720,7 +673,6 @@ pctr) ;; bktr*) - unit=`expr $i : 'bktr\(.*\)'` rm -f bktr$unit mknod bktr$unit c 49 $unit chown root.wheel bktr$unit @@ -728,15 +680,13 @@ bktr*) ;; tuner*) - unit=`expr $i : 'tuner\(.*\)'` rm -f tuner$unit - mknod tuner$unit c 49 $((unit + 16)) + mknod tuner$unit c 49 $(( unit + 16 )) chown root.wheel tuner$unit chmod 0644 tuner$unit ;; wdt*) - unit=`expr $i : 'wdt\(.*\)'` rm -f wdt$unit mknod wdt$unit c 55 $unit chown root.operator wdt$unit @@ -745,7 +695,7 @@ wdt*) local) umask 0 - test -s MAKEDEV.local && sh MAKEDEV.local + test -s $this.local && sh $this.local ;; *)