Browse Source

expr(1)-less makedev.

includes some works from todd@ and millert@
verified by todd@ and millert@
OPENBSD_2_7
mickey 25 years ago
parent
commit
2339dccd36
1 changed files with 205 additions and 255 deletions
  1. +205
    -255
      src/etc/etc.i386/MAKEDEV

+ 205
- 255
src/etc/etc.i386/MAKEDEV View File

@ -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
;;
*)


Loading…
Cancel
Save