Browse Source

This MAKEDEV no longer requires awk.

It almost is free of expr but will require more work.
PLEASE let me know if this changes anything ASAP!
OPENBSD_2_1
todd 28 years ago
parent
commit
1b15781709
1 changed files with 108 additions and 72 deletions
  1. +108
    -72
      src/etc/etc.sparc/MAKEDEV

+ 108
- 72
src/etc/etc.sparc/MAKEDEV View File

@ -1,6 +1,6 @@
#!/bin/sh -
#
# $OpenBSD: MAKEDEV,v 1.15 1997/04/13 20:08:19 deraadt Exp $
# $OpenBSD: MAKEDEV,v 1.16 1997/04/22 05:28:56 todd Exp $
#
# Copyright (c) 1990 The Regents of the University of California.
# All rights reserved.
@ -72,6 +72,52 @@
PATH=/sbin:/bin/:/usr/bin:/usr/sbin:/usr/etc
umask 77
case `uname -s` in
SunOS) add ()
{
expr $1 + $2
}
mult ()
{
expr $1 '*' $2
}
hex ()
{
printf "%x" $1
}
unt ()
{
expr $1 : '.[yd]\(.*\)[a-p]'
}
;;
OpenBSD) add ()
{
echo "$(( $1 + $2 ))"
}
mult ()
{
echo "$(( $1 * $2 ))"
}
hex ()
{
case $1 in
[0-9]) echo -n $1 ;;
1[0-5]) echo -e -n "\\$(( $1 + 131 ))" ;;
esac
}
unt ()
{
if [ "${1#xy}" -ne "$1" ]
then
unt=${1#xy}
else
unt=${1#*d}
fi
echo ${unt%*[a-p]}
}
;;
esac
for i
do
@ -122,9 +168,8 @@ std)
fd)
rm -f fd/*
mkdir fd > /dev/null 2>&1
(cd fd && eval `echo "" | awk ' BEGIN { \
for (i = 0; i < 64; i++) \
printf("mknod %d c 24 %d;", i, i)}'`)
n=0
(cd fd && while [ $n -lt 64 ]; do mknod $n c 24 $n; n=`add $n 1`; done )
chown -R root.wheel fd
chmod 555 fd
chmod 666 fd/*
@ -196,7 +241,7 @@ fd*)
0|1) blk=16; chr=54;;
*) echo bad unit $unit for $i; exit 1;;
esac
nam=fd${typnam}${unit}
nam=fd${typnam}$unit
rm -f ${nam}? r${nam}?
basenum=`expr $unit '*' 128 + $typnum '*' 16`
mknod ${nam}a b $blk `expr $basenum + 0`
@ -238,6 +283,12 @@ fd*)
ccd*|sd*|xd*|xy*|cd*|vnd*)
umask 2
unit=`unt $i`
if [ $unit -gt 15 ]
then
echo bad disk unit: $i - $unit
exit 127
fi
case $i in
ccd*) name=ccd; blk=9; chr=23;;
sd*) name=sd; blk=7; chr=17;;
@ -245,50 +296,29 @@ ccd*|sd*|xd*|xy*|cd*|vnd*)
xy*) name=xy; blk=3; chr=9;;
cd*) name=cd; blk=18; chr=58;;
vnd*) name=vnd; blk=8; chr=110;;
*) echo bad unit for disk in: $i;;
esac
case $unit in
0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|\
17|18|19|20|21|22|23|24|25|26|27|28|29|30|31)
rm -f ${name}${unit}[a-p] r${name}${unit}[a-p]
mknod ${name}${unit}c b $blk `expr $unit '*' 16 + 2`
mknod r${name}${unit}c c $chr `expr $unit '*' 16 + 2`
mknod ${name}${unit}a b $blk `expr $unit '*' 16 + 0`
mknod ${name}${unit}b b $blk `expr $unit '*' 16 + 1`
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}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]
;;
*)
echo bad unit for disk in: $i
;;
esac
if [ "$unit" = "" ]
then
n=0
while [ $n -lt 32 ]
do
sh MAKEDEV $name$n
n=`add $n 1`
done
fi
rm -f $name$unit? r$name$unit?
minor=`mult $unit 8`
for slice in a b c d e f g h i j k l m n o p
do
dev=$name$unit$slice
mknod $dev b $blk $minor
mknod r$dev b $chr $minor
minor=`add $minor 1`
done
chown root.operator $name$unit? r$name$unit?
chmod 640 $name$unit? r$name$unit?
umask 77
umask 77
;;
@ -299,22 +329,23 @@ st*)
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`
chown root.operator ${name}${unit} n${name}${unit} \
sixt=`mult $unit 16`
mknod $name$unit b $blk `add $sixt 0`
mknod n$name$unit b $blk `add $sixt 1`
mknod e$name$unit b $blk `add $sixt 2`
mknod en$name$unit b $blk `add $sixt 3`
mknod r$name$unit c $chr `add $sixt 0`
mknod nr$name$unit c $chr `add $sixt 1`
mknod er$name$unit c $chr `add $sixt 2`
mknod enr$name$unit c $chr `add $sixt 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} \
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 \
r${name}${unit} nr${name}${unit} \
er${name}${unit} enr${name}${unit}
r$name$unit nr$name$unit \
er$name$unit enr$name$unit
umask 77
;;
@ -324,9 +355,10 @@ ch*)
ch*) name=ch; chr=19;;
esac
rm -f $name$unit
mknod ${name}${unit} c $chr `expr $unit '*' 16 + 0`
chown root.operator ${name}${unit}
chmod 640 ${name}${unit}
sixt=`mult $unit 16`
mknod $name$unit c $chr `add $sixt 0`
chown root.operator $name$unit
chmod 640 $name$unit
umask 77
;;
@ -350,11 +382,15 @@ pty*)
case $unit in
0|1|2|3|4)
umask 0
eval `echo $offset $name | awk ' { b=$1; n=$2 } END {
for (i = 0; i < 16; i++)
printf("mknod tty%s%x c 20 %d;" \
"mknod pty%s%x c 21 %d; ", \
n, i, b+i, n, i, b+i); }'`
n=0
while [ $n -lt 16 ]
do
n=$name`hex $n`
rm -rf {tty,pty}$n
mknod tty$n c 5 `add $offset $n`
mknod pty$n c 6 `add $offset $n`
n=`add $n 1`
done
umask 77
if [ $unit = 1 ]; then
mv ttyqf ttyv0; mv ptyqf ptyv0
@ -375,7 +411,7 @@ random|srandom|urandom|prandom|arandom)
;;
uk*)
unit=`expr $i : 'uk\(.*\)'`
unit=${i#uk}
rm -f uk$unit
mknod uk$unit c 98 $unit
chown root.operator uk$unit
@ -383,7 +419,7 @@ uk*)
;;
ss*)
unit=`expr $i : 'ss\(.*\)'`
unit=${i#ss}
rm -f ss$unit
mknod ss$unit c 99 $unit
chown root.operator ss$unit


Loading…
Cancel
Save