diff --git a/src/etc/Makefile b/src/etc/Makefile index 23d457c7..3712ee79 100644 --- a/src/etc/Makefile +++ b/src/etc/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.137 2002/01/07 07:54:15 todd Exp $ +# $OpenBSD: Makefile,v 1.138 2002/01/08 01:06:44 todd Exp $ TZDIR= /usr/share/zoneinfo LOCALTIME= US/Pacific @@ -318,9 +318,17 @@ snap_md: .endif # DESTDIR check -MAKEDEVARCHS+= sparc64 -#MAKEDEVARCHS+= macppc +#MAKEDEVARCHS+= alpha +#MAKEDEVARCHS+= amiga +#MAKEDEVARCHS+= hp300 +#MAKEDEVARCHS+= hppa MAKEDEVARCHS+= i386 +#MAKEDEVARCHS+= mac68k +#MAKEDEVARCHS+= macppc +#MAKEDEVARCHS+= sparc +MAKEDEVARCHS+= sparc64 +MAKEDEVARCHS+= sun3 +#MAKEDEVARCHS+= vax all: @make M=${MACHINE} m4 diff --git a/src/etc/etc.sun3/MAKEDEV b/src/etc/etc.sun3/MAKEDEV index 8e459fd1..6da6a596 100644 --- a/src/etc/etc.sun3/MAKEDEV +++ b/src/etc/etc.sun3/MAKEDEV @@ -1,7 +1,15 @@ #!/bin/sh - -# $OpenBSD: MAKEDEV,v 1.38 2001/09/06 19:45:34 todd Exp $ # -# Copyright (c) 1990 The Regents of the University of California. +# THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT. +# generated from: +# +# OpenBSD: etc.sun3/MAKEDEV.md,v 1.23 1998/09/27 21:59:51 kst Exp +# OpenBSD: MAKEDEV.mi,v 1.10 2002/01/08 00:52:06 todd Exp +# OpenBSD: MAKEDEV.sub,v 1.4 2002/01/07 06:54:10 todd Exp +# +# $OpenBSD: MAKEDEV,v 1.39 2002/01/08 01:06:44 todd Exp $ +# +# Copyright (c) 2001 Todd T. Fries # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -9,499 +17,372 @@ # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# 3. All advertising materials mentioning features or use of this software -# must display the following acknowledgement: -# This product includes software developed by the University of -# California, Berkeley and its contributors. -# 4. Neither the name of the University nor the names of its contributors -# may be used to endorse or promote products derived from this software -# without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -# SUCH DAMAGE. +# 2. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. # -# @(#)MAKEDEV 5.5 (Berkeley) 5/28/91 +# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +# THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # Device "make" file. Valid arguments: # all makes all known devices, including local devices. # Tries to make the ``standard'' number of each type. # std standard devices # local configuration specific devices -# # Tapes: # st* SCSI tapes -# # Disks: # sd* SCSI disks +# vnd* "file" pseudo-disks +# ccd* concatenated disk devices # cd* SCSI cdrom drives # xy* Xylogic 450/451 disks -# rd* "ramdisk" pseudo-disks # xd* Xylogic 753/7053 disks -# vnd* "file" pseudo-disks -# ccd* concatenated disk devices -# +# Terminal ports: +# tty[a-z]* Zilog 8530 Serial Port # Pseudo terminals: -# pty* set of 16 master and slave pseudo terminals -# +# tty* set of 16 slave psuedo terminals +# pty* set of 16 master pseudo terminals # Printers: -# -# Terminal ports: -# tty[a-b] onboard zs serial ports -# +# Call units: # Special purpose devices: -# uk* SCSI Unknown device -# ss* SCSI scanners # bwtwo* # cgtwo* # cgfour* # bpf* Berkeley Packet Filter +# pf* Packet Filter # tun* network tunnel driver -# *random inkernal random data source +# rd* "ramdisk" pseudo-disks +# *random inkernel random data source +# uk* SCSI Unknown device +# ss* SCSI scanners +# fd makes fd/* for the fdescfs # xfs* XFS filesystem devices -# altq ALTQ control interface +# altq/ ALTQ control interface +# XXX - Keep /usr/etc so SunOS can find chown +test -d /usr/etc && PATH=$PATH:/usr/etc -PATH=/sbin:/bin:/usr/bin:/usr/sbin -this=$0 -umask 77 +PATH=/sbin:/usr/sbin:/bin:/usr/bin +T=$0 -if ! [ "$os" ]; then - os=OpenBSD -fi +# set this to echo for Echo-Only debugging +[ "$eo" ] || eo= -# SunOS shell support functions -if [ "$os" = "SunOS" ] -then -PATH=$PATH:/usr/etc # SunOS has chown is /usr/etc - add () - { - expr $1 + $2 - } - mult () - { - expr $1 '*' $2 - } - hex () - { - case $1 in - [0-9]) echo -n $1;; - 10) echo -n a;; - 11) echo -n b;; - 12) echo -n c;; - 13) echo -n d;; - 14) echo -n e;; - 15) echo -n f;; - esac - } - trunc () - { - expr $1 : $2'\(.*\)' - } - unt () - { - expr $1 : '[a-z]*\([0-9]*\)[a-p]*' - } -fi -# OpenBSD shell support functions -if [ "$os" = "OpenBSD" ] -then - add () - { - tmp=0 - while [ "$1" ] - do - tmp=$(( $1 + $tmp )) - shift - done - echo $tmp - } - mult () - { - echo "$(( $1 * $2 ))" - } - hex () - { - case $1 in - [0-9]) echo -n $1;; - 10) echo -n a;; - 11) echo -n b;; - 12) echo -n c;; - 13) echo -n d;; - 14) echo -n e;; - 15) echo -n f;; +hex() +{ + case $1 in + [0-9]) echo -n $1;; + 10) echo -n a;; + 11) echo -n b;; + 12) echo -n c;; + 13) echo -n d;; + 14) echo -n e;; + 15) echo -n f;; + esac +} +trunc() +{ + # XXX pdksh can't seem to deal with locally scoped variables + # in ${foo#$bar} expansions + arg1="$1" + arg2="$2" + case $3 in + l) echo ${arg2#$arg1} ;; + r|*) echo ${arg1#$arg2} ;; + esac +} +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 +} +dodisk() +{ + n=$(($((${5}*${7:-16}))+${6})) count=0 + RMlist="$RMlist $1$2? r$1$2?" + for d in a b c d e f g h i j k l m n o p + do + M $1$2$d b $3 $(($n+$count)) 640 + M r$1$2$d c $4 $(($n+$count)) 640 + let count=count+1 + done + MKlist="$MKlist;chown root.operator $1$2? r$1$2?" +} +dodisk2() +{ + n=$(($(($5*${7:-16}))+$6)) + M $1$2a b $3 $n 640 operator + M r$1$2a c $4 $n 640 operator + n=$(($n+2)) + M $1$2c b $3 $n 640 operator + M r$1$2c c $4 $n 640 operator +} + +# M name b/c major minor [mode] [group] +RMlist="rm -f" +MKlist=":" +mkl() { + [ "${mklist[$1]}" ] && { + mklist[$1]="${mklist[$1]};mknod -m $1 $2 $3 $4 $5" + } || { + mklist[$1]="mknod -m $1 $2 $3 $4 $5" + modes="$modes $1" + } +} +M() { + RMlist="$RMlist $1" + mkl ${5-666} $1 $2 $3 $4 + mklist="$mklist $1" + G=${6:-wheel} + [ "$7" ] && { + MKlist="$MKlist;chown $7.$G $1" + } || { + case $G in + wheel)g=0;;kmem)g=2;;operator)g=5;;tty)g=4;;dialer)g=117;; esac + [ "${grplist[$g]}" ] && { + grplist[$g]="${grplist[$g]} $1" + } || { + groups="$groups $g" + grplist[$g]="chgrp $G $1" + } } - trunc () - { - # XXX pdksh can't seem to deal with locally scoped variables - # in ${foo#$bar} expansions - arg1="$1" - arg2="$2" - echo ${arg1#$arg2} - } - unt () - { - # XXX pdksh can't seem to deal with locally scoped variables - # in ${foo#$bar} expansions - arg1="$1" - tmp="${arg1#[a-z]*}" - while [ "$tmp" != "$arg1" ] - do - arg1=$tmp - tmp="${arg1#[a-z]*}" - done - tmp="${arg1%*[a-z]}" - while [ "$tmp" != "$arg1" ] - do - arg1=$tmp - tmp="${arg1%*[a-z]}" - done - echo $arg1 - } -fi - -for i + return 0 +} +R() { +for i in "$@" do - -unit=`unt $i` -[ "$unit" ] || unit=0 +U=`unt $i` +[ "$U" ] || U=0 case $i in - -all) - sh $this std fd sd0 sd1 sd2 sd3 sd4 xd0 xd1 xd2 xd3 xy0 xy1 xy2 xy3 - sh $this cd0 st0 st1 rd0 - sh $this uk0 uk1 - sh $this ss0 ss1 - sh $this pty0 vnd0 vnd1 vnd2 vnd3 pf tun0 tun1 tun2 tun3 - sh $this ccd0 ccd1 ccd2 ccd3 - sh $this bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 - sh $this bwtwo0 cgtwo0 cgfour0 - sh $this random local - sh $this xfs0 altq +std) + M console c 0 0 600 + M tty c 2 0 + M mem c 3 0 640 kmem + M kmem c 3 1 640 kmem + M null c 3 2 + M zero c 3 12 + M stdin c 23 0 + M stdout c 23 1 + M stderr c 23 2 + M ksyms c 37 0 640 kmem + M drum c 7 0 640 kmem + M klog c 16 0 600 + M kd c 1 0 600 + M eeprom c 3 11 640 kmem + M mouse c 13 0 + M fb c 22 0 + M kbd c 29 0 + M leds c 3 13 644 + M vme16d16 c 3 5 600; MKlist="$MKlist;ln -s vme16d16 vme16" + M vme24d16 c 3 6 600; MKlist="$MKlist;ln -s vme24d16 vme24" + M vme32d16 c 3 7 600 + M vme16d32 c 3 8 600 + M vme24d32 c 3 9 600 + M vme32d32 c 3 10 600; MKlist="$MKlist;ln -s vme32d32 vme32" + RMlist="$RMlist vme16 vme24 vme32" ;; -ramdisk) - sh $this std random - sh $this sd0 sd1 sd2 sd3 sd4 rd0 cd0 st0 st1 -# sh $this xd0 xd1 xd2 xd3 xy0 xy1 xy2 xy3 - sh $this bpf0 +altq) + RMlist="mkdir -p altq;$RMlist" + for d in altq cbq wfq afm fifoq red rio localq hfsc cdnr blue priq; do + M altq/$d c 85 $U 644 + U=$(($U+1)) + done ;; -std) - rm -f console drum mem kmem xf86 null zero io tty klog stdin stdout stderr ksyms - rm -f eeprom kd ttya ttyb fb mouse kbd leds - rm -f vme16d16 vme24d16 vme32d16 vme16d32 vme24d32 vme32d32 vme16 vme24 vme32 - mknod console c 0 0 - mknod kd c 1 0 - mknod tty c 2 0 ; chmod 666 tty - mknod kmem c 3 1 ; chmod 640 kmem ; chown root.kmem kmem - mknod mem c 3 0 ; chmod 640 mem ; chown root.kmem mem - mknod null c 3 2 ; chmod 666 null - mknod vme16d16 c 3 5 ; chmod 600 vme16d16 - ln -s vme16d16 vme16 - mknod vme24d16 c 3 6 ; chmod 600 vme24d16 - ln -s vme24d16 vme24 - mknod vme32d16 c 3 7 ; chmod 600 vme32d16 - mknod vme16d32 c 3 8 ; chmod 600 vme16d32 - mknod vme24d32 c 3 9 ; chmod 600 vme24d32 - mknod vme32d32 c 3 10 ; chmod 600 vme32d32 - ln -s vme32d32 vme32 - mknod zero c 3 12 ; chmod 666 zero - mknod eeprom c 3 11 ; chmod 640 eeprom ; chown root.kmem eeprom - mknod leds c 3 13 ; chmod 644 leds - mknod drum c 7 0 ; chmod 640 drum ; chown root.kmem drum - mknod klog c 16 0 ; chmod 600 klog - mknod stdin c 23 0 ; chmod 666 stdin - mknod stdout c 23 1 ; chmod 666 stdout - mknod stderr c 23 2 ; chmod 666 stderr - sh $this ttya ttyb - mknod fb c 22 0 ; chmod 666 fb - mknod mouse c 13 0 ; chmod 666 mouse - mknod kbd c 29 0 ; chmod 666 kbd - mknod ksyms c 37 0 ; chmod 640 ksyms ; chown root.kmem ksyms +xfs*) + M xfs$U c 51 $U 600 ;; fd) - rm -f fd/* - mkdir fd > /dev/null 2>&1 - n=0 - (cd fd && while [ $n -lt 64 ]; do mknod $n c 23 $n; n=`add $n 1`; done ) - chown -R root.wheel fd - chmod 555 fd - chmod 666 fd/* + RMlist="mkdir -p fd;$RMlist" n=0 + while [ $n -lt 64 ];do M fd/$n c 23 $n;n=$(($n+1));done + MKlist="$MKlist;chmod 555 fd" ;; -bwtwo*) - rm -f bwtwo$unit - mknod bwtwo$unit c 27 $unit; chmod 666 bwtwo$unit +ss*) + M ss$U c 99 $U 440 operator + RMlist="$RMlist scan$U" + MKlist="$MKlist;umask 77;ln -s ss$U scan$U" ;; -cgtwo*) - rm -f cgtwo$unit - mknod cgtwo$unit c 31 $unit; chmod 666 cgtwo$unit +uk*) + M uk$U c 98 $U 640 operator ;; -cgfour[0-9]*) - rm -f cgfour$unit - mknod cgfour$unit c 39 $unit; chmod 666 cgfour$unit +*random) + n=0 + for pre in " " s u p a + do + M ${pre}random c 72 $n 644 + n=$(($n+1)) + done ;; -xfs*) - rm -f xfs$unit - mknod xfs$unit c 51 $unit - chmod 600 xfs$unit - chown root.wheel xfs$unit +rd*) + dodisk2 rd $U 13 52 $U 0 ;; -bpf*) - rm -f bpf$unit - mknod bpf$unit c 36 $unit - chmod 600 bpf$unit - chown root.wheel bpf$unit +tun*) + M tun$U c 24 $U 600 ;; -pf) - rm -f pf - mknod pf c 75 0 - chown root.wheel pf - chmod 600 pf +pf*) + M pf c 75 0 600 ;; -tun*) - rm -f tun$unit - mknod tun$unit c 24 $unit - chmod 600 tun$unit - chown root.wheel tun$unit +bpf*) + M bpf$U c 36 $U 600 ;; -ccd*|sd*|xd*|xy*|cd*) - umask 2 - unit=`unt $i` - if [ 0$unit -gt 15 ] - then - echo bad disk unit: $i - $unit - exit 127 - fi - case $i in - ccd*) name=ccd; blk=9; chr=33;; - sd*) name=sd; blk=7; chr=17;; - xd*) name=xd; blk=10; chr=42;; - xy*) name=xy; blk=3; chr=9;; - cd*) name=cd; blk=18; chr=58;; - *) echo bad unit for disk in: $i;; - esac - if [ "$unit" = "" ] - then - n=0 - while [ $n -lt 32 ] - do - sh $this $name$n - n=`add $n 1` - done - fi - rm -f $name$unit? r$name$unit? - minor=`mult $unit 16` - 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 c $chr $minor - minor=`add $minor 1` - done - chown root.operator $name$unit? r$name$unit? - chmod 640 $name$unit? r$name$unit? - umask 77 +cgfour*) + M cgfour$U c 39 $U 666 ;; -vnd*) - umask 2 - unit=`unt $i` - if [ 0$unit -gt 15 ] - then - echo bad disk unit: $i - $unit - exit 127 - fi - blk=5; chr=19; - for name in vnd svnd; do - case $name in - vnd) off=0;; - svnd) off=128;; - esac - if [ "$unit" = "" ] - then - n=0 - while [ $n -lt 32 ] - do - sh $this $name$n - n=`add $n 1` - done - fi - rm -f $name$unit? r$name$unit? - minor=`mult $unit 16` - minor=`add $minor $off` - 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 c $chr $minor - minor=`add $minor 1` - done - chown root.operator $name$unit? r$name$unit? - chmod 640 $name$unit? r$name$unit? - done - umask 77 +cgtwo*) + M cgtwo$U c 31 $U 666 ;; -rd*) - umask 2 ; unit=`expr $i : '.*d\(.*\)'` - rm -f rd${unit}* rrd${unit}* - mknod rd${unit}a b 13 `expr $unit '*' 16 + 0` - mknod rd${unit}c b 13 `expr $unit '*' 16 + 2` - mknod rrd${unit}a c 52 `expr $unit '*' 16 + 0` - mknod rrd${unit}c c 52 `expr $unit '*' 16 + 2` - chown root.operator rd${unit}[ac] rrd${unit}[ac] - chmod 640 rd${unit}[ac] rrd${unit}[ac] - umask 77 +bwtwo*) + M bwtwo$U c 27 $U 666 ;; -st*) - umask 2 - case $i in - st*) name=st; blk=11; chr=18;; +pty*) + case $U in + 0) off=0 name=p;; + 1) off=16 name=q;; + 2) off=32 name=r;; + 3) off=48 name=s;; +# Note that telnetd, rlogind, and xterm (at least) only look at p-s. + 4) off=64 name=t;; + 5) off=80 name=u;; + 6) off=96 name=v;; + 7) off=112 name=w;; + 8) off=128 name=x;; + 9) off=144 name=y;; + 10) off=160 name=z;; + 11) off=176 name=P;; + 12) off=192 name=Q;; + 13) off=206 name=R;; + 14) off=224 name=S;; + 15) off=240 name=T;; + *) echo bad unit for pty in: $i; continue;; 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 - 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 660 $name$unit n$name$unit \ - e$name$unit en$name$unit \ - r$name$unit nr$name$unit \ - er$name$unit enr$name$unit - umask 77 + n=0 + while [ $n -lt 16 ] + do + nam=$name$(hex $n) + M tty$nam c 20 $(($off+$n)) + M pty$nam c 21 $(($off+$n)) + n=$(($n+1)) + done ;; tty[a-z]) - unit=`expr $i : 'tty\([a-z]\)'` - rm -f tty$unit - case $unit in + u=${i#tty*} + case $u in a) n=0 ;; b) n=1 ;; + c) n=4 ;; + d) n=5 ;; *) echo unknown tty device $i ;; esac - mknod tty$unit c 12 $n - chown uucp.dialer tty$unit - chmod 660 tty$unit + M tty$u c 12 $n 660 dialer uucp ;; -pty*) - case $unit in - 0) offset=0 name=p;; - 1) offset=16 name=q;; - 2) offset=32 name=r;; - 3) offset=48 name=s;; - 4) offset=64 name=t;; - 5) offset=80 name=u;; - 6) offset=96 name=v;; - 7) offset=112 name=w;; - 8) offset=128 name=x;; - 9) offset=144 name=y;; - 10) offset=160 name=z;; - 11) offset=176 name=P;; - 12) offset=192 name=Q;; - 13) offset=208 name=R;; - 14) offset=224 name=S;; - 15) offset=240 name=T;; - *) echo bad unit for pty in: $i;; - esac - case $unit 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 20 `add $offset $n` - mknod pty$nam c 21 `add $offset $n` - n=`add $n 1` - done - umask 77 - ;; - esac +cd*) + dodisk2 cd $U 18 58 $U 0 ;; -random|srandom|urandom|prandom|arandom) - rm -f random urandom srandom prandom arandom - mknod random c 72 0 - mknod srandom c 72 1 - mknod urandom c 72 2 - mknod prandom c 72 3 - mknod arandom c 72 4 - chown root.wheel random srandom urandom prandom arandom - chmod 644 random srandom urandom prandom arandom +vnd*) + dodisk vnd $U 5 19 $U 0 + dodisk svnd $U 5 19 $U 128 ;; -uk*) - unit=`trunc $i uk` - rm -f uk$unit - mknod uk$unit c 98 $unit - chown root.operator uk$unit - chmod 640 uk$unit +st*) + n=$(($U*16)) + for pre in " " n e en + do + M ${pre}st$U b 11 $n 660 operator + M ${pre}rst$U c 18 $n 660 operator + n=$(($n+1)) + done ;; -ss*) - unit=`trunc $i ss` - rm -f ss$unit - mknod ss$unit c 99 $unit - chown root.operator ss$unit - chmod 440 ss$unit -# backwards compatibility with older PINTs - rm -f scan$unit - ln -s ss$unit scan$unit +local) + test -s $T.local && sh $T.local ;; -altq) - mkdir -p altq - chmod 755 altq - unit=0 - for dev in altq cbq wfq afm fifoq red rio localq hfsc \ - cdnr blue priq; do - rm -f altq/$dev - mknod altq/$dev c 85 $unit - chmod 644 altq/$dev - unit=$(($unit + 1)) - done +all) + R std fd sd0 sd1 sd2 sd3 sd4 pty0 pty1 st0 st1 cd0 cd1 + R vnd0 vnd1 vnd2 vnd3 ccd0 ccd1 ccd2 ccd3 xy0 xy1 xy2 xy3 + R xd0 xd1 xd2 xd3 rd0 + R bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 + R tun0 tun1 tun2 tun3 altq pf ttya ttyb ttyc ttyd random + R uk0 uk1 ss0 ss1 xfs0 bwtwo0 cgfour0 local ;; -local) - umask 0 - test -s MAKEDEV.local && sh MAKEDEV.local +sd*|ccd*|xd*|xy*) + case $i in + sd*) dodisk sd $U 7 17 $U 0;; + ccd*) dodisk ccd $U 9 33 $U 0;; + xd*) dodisk xd $U 10 42 $U 0;; + xy*) dodisk xy $U 3 9 $U 0;; + esac ;; + *) echo $i: unknown device ;; esac done +} +R "$@" +if [ "$os" = "SunOS" ]; then + eo=transform + transform() { + case $mode in + 600) mask=077;; + 640) mask=027;; + 660) mask=007;; + 644) mask=022;; + 666) mask=0;; + 440) mask=227;; + esac + echo `echo "$@"|sed \ + 's/mknod -m \([0-9]*\) /umask '$mask';mknod /;s/-m [0-9]* //g;\ + s/operator/5/g;s/root.kmem/root.2/g;s/root\./root:/g'` + } +fi +list="$RMlist" +for mode in $modes; do + list="$list;${mklist[$mode]}" +done +for group in $groups; do + list="$list;${grplist[$group]}" +done +list="$list;$MKlist" +if [ "$eo" = "echo" -o "$eo" = "transform" ]; then + $eo "$list" +else + echo "$list" | sh +fi