summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>1999-12-05 19:19:09 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>1999-12-05 19:19:09 +0000
commit1392557e27709a43a352ffadb0085d81bf6e02f0 (patch)
tree1b8245a2f96d64eef534208153235e72631ecc0b
parentc121700f1d7afdace3b6544077aedd3d395a4380 (diff)
expr(1)-less makedev.
includes some works from todd@ and millert@ verified by todd@ and millert@
-rw-r--r--etc/etc.i386/MAKEDEV460
1 files changed, 205 insertions, 255 deletions
diff --git a/etc/etc.i386/MAKEDEV b/etc/etc.i386/MAKEDEV
index bfaa0b8a899..3535cf1bcb2 100644
--- a/etc/etc.i386/MAKEDEV
+++ b/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
;;
*)