diff options
author | Todd T. Fries <todd@cvs.openbsd.org> | 2001-09-04 16:15:06 +0000 |
---|---|---|
committer | Todd T. Fries <todd@cvs.openbsd.org> | 2001-09-04 16:15:06 +0000 |
commit | 464af75656a470540e07c952d2dbad60b811e2ca (patch) | |
tree | ec28d13c33d404b8f3938429804a1031bd727e69 /etc | |
parent | c45786127eb978611c20a1b2f6215c57b3a082e9 (diff) |
created by reading conf.c by me
Diffstat (limited to 'etc')
-rw-r--r-- | etc/etc.sparc64/MAKEDEV | 385 |
1 files changed, 385 insertions, 0 deletions
diff --git a/etc/etc.sparc64/MAKEDEV b/etc/etc.sparc64/MAKEDEV new file mode 100644 index 00000000000..62d77c9561e --- /dev/null +++ b/etc/etc.sparc64/MAKEDEV @@ -0,0 +1,385 @@ +#!/bin/sh - +# +# $OpenBSD: MAKEDEV,v 1.1 2001/09/04 16:15:05 todd Exp $ +# +# Copyright (c) 2001 Todd T. Fries <todd@OpenBSD.org> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# 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. +# floppy devices to be put on install floppies +# std standard devices +# local configuration specific devices +# +# Tapes: +# st* SCSI tapes +# ch* SCSI media changer +# +# Disks: +# wd* "winchester" disk drives (ST506,IDE,ESDI,RLL,...) +# fd* Floppy disk drives (3 1/2", 5 1/4") +# sd* SCSI disks +# cd* SCSI cdrom drives +# vnd* "file" pseudo-disks +# rd* "ramdisk" pseudo-disks +# ccd* concatenated disk devices +# raid* RAIDframe disk devices +# +# Console ports: +# console PROM console +# +# Pointing devices: +# mouse mouse (provides events, for X11) +# +# Terminal ports: +# tty[a-z]* Zilog 8530 Serial Port +# com* NS16x50 serial ports +# +# Pseudo terminals: +# pty* set of 16 master and slave pseudo terminals +# +# Special purpose devices: +# fd makes fd/* for the fdescfs +# bwtwo* +# cgthree* +# cgsix* +# cgfourteen* +# bpf* Berkeley Packet Filter +# lkm loadable kernel modules interface +# audio audio device +# tun* network tunnel driver +# *random inkernal random data source +# uk* SCSI Unknown device +# ss* SCSI scanners +# ses* SES/SAF-TE SCSI devices +# +PATH=/sbin:/usr/sbin:/bin:/usr/bin +T=$0 + + +# default shell support functions +# set this to echo for Echo-Only debugging +eo= + +# 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} + [ "$G" ] && { + [ "$7" ] && { + MKlist="$MKlist;chown $7.$G $1" + } || MKlist="$MKlist;chgrp $G $1" + } + return 0 +} +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} * 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() +{ + [ "$7" ] && fac=$7 || fac=16 + n=$(( $(($5 * $fac )) + $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 +} +R() { +for i in "$@" +do +U=`unt $i` +[ "$U" ] || U=0 + +case $i in +all) + R std fd wd0 wd1 wd2 wd3 sd0 sd1 sd2 + R pty0 pty1 st0 st1 ch0 cd0 cd1 + R vnd0 vnd1 ccd0 ccd1 ccd2 ccd3 + R raid0 raid1 raid2 raid3 + R bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 bpf8 bpf9 + R tun0 tun1 tun2 random ses0 uk0 uk1 ss0 ss1 + R fd0 fd0B fd0C fd0D fd0E fd0F fd0G fd0H + R fd1 fd1B fd1C fd1D fd1E fd1F fd1G fd1H + R audio local + ;; +floppy) + R std fd0 wd0 wd1 sd0 sd1 + R st0 cd0 random + ;; +ramdisk) + R std lkm random + R fd0 rd0 wd0 wd1 wd2 wd3 bpf0 + R sd0 sd1 sd2 sd3 st0 st1 cd0 cd1 mcd0 + ;; +std)M console c 0 0 600 + M tty c 2 0 + M null c 3 2 + M zero c 3 12 + M mouse c 13 0 666 + M klog c 16 0 600 + M fb c 22 0 666 + M stdin c 24 0 + M stdout c 24 1 + M stderr c 24 2 + M kbd c 29 0 666 + mklist="" + M mem c 3 0 640 + M kmem c 3 1 640 + M drum c 7 0 640 + MKlist="$MKlist;chown root.kmem $mklist";; +tty[a-z]) + rm -f tty$unit + case $unit in + a) n=0 ;; + b) n=1 ;; + c) n=4 ;; + d) n=5 ;; + *) echo unknown tty device $i ;; + esac + M tty$unit c 12 $n + chown uucp.wheel tty$unit + ;; +cua[a-z]) + rm -f cua$unit + case $unit in + a) n=0 ;; + b) n=1 ;; + c) n=4 ;; + d) n=5 ;; + *) echo unknown cua device $i ;; + esac + M cua$unit c 12 $(( $n + 128 )) wheel uucp + ;; +speaker)M speaker c 27 0 600;; +mouse*)name=${i##mouse-} + if [ ! -c $name ]; then + $0 $name # make the appropriate device + fi + RMlist="$RMlist mouse" + MKlist="$MKlist;ln -s $name mouse";; +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 + n=0 + while [ $n -lt 16 ] + do + nam=$name$(hex $n) + M tty$nam c 20 $(( $off + $n )) $mod $grp + M pty$nam c 21 $(( $off + $n )) $mod $grp + n=$(( $n + 1 )) + done;; +bwtwo*) M bwtwo$U c 27 $U 666;; +cgthree*) M cgthree$U c 55 $U 666;; +cgsix*) M cgsix$U c 67 $U 666;; +cgfourteen*) M cgfourteen$U c 99 $U 666;; +fd) + mkdir -p fd + n=0 + while [ $n -lt 64 ];do M fd/$n c 24 $n;n=$(( $n + 1 ));done + MKlist="$MKlist;chmod 555 fd";; +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;; +fd*) + typnam=$U${i#fd[01]*} + case $typnam in + 0|1) typnum=0;; # no type specified, assume A + *A) typnam=0; 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 $U in + 0|1) blk=16; chr=54;; + *) echo bad unit $U for $i; exit 1;; + esac + nam=fd${typnam} + n=$(( $(($U * 128 )) + $(($typnum * 16 )) )) + M ${nam}a b $blk $n 640 operator + M ${nam}b b $blk $(( $n + 1 )) 640 operator + M ${nam}c b $blk $(( $n + 2 )) 640 operator + M r${nam}a c $chr $n 640 operator + M r${nam}b c $chr $(( $n + 1 )) 640 operator + M r${nam}c c $chr $(( $n + 2 )) 640 operator;; +sd*|ccd*|raid*|wd*) + case $i in + sd*) n=sd b=7 c=17;; + ccd*) n=ccd b=9 c=23;; + raid*) n=raid b=25 c=121;; + wd*) n=wd b=12 c=26;; + esac + dodisk $n $U $b $c $U 0;; +cd*) + dodisk2 cd $U 18 58 $U 0;; +rd*) + + n=$(( $U * 16 )) + M rd${unit}a b 5 $(( $n + 0 )) $mod $grp 640 operator + M rd${unit}c b 5 $(( $n + 2 )) $mod $grp 640 operator + M rrd${unit}a c 61 $(( $n + 0 )) $mod $grp 640 operator + M rrd${unit}c c 61 $(( $n + 2 )) $mod $grp 640 operator;; + +vnd*) + dodisk vnd $U 8 110 $U 0 + dodisk svnd $U 8 110 $U 128;; +uk*) M uk$U c 60 $U 640 operator;; +ss*) + M ss$U c 59 $U 440 operator + rm -f scan$U + umask 77 + ln -s ss$U scan$U;; +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;; +ses*) + M ses$U c 4 $U 640 operator;; +ch*) M ch$U c 19 $U 660 operator;; +lkm) + M lkm c 112 0 640 kmem + ;; +*random) + n=0 + for pre in " " s u p a + do + M ${pre}random c 119 $n 644 + n=$(( $n + 1 )) + done;; +audio*) + [ "$U" = "0" ] && u= || u=$U + M sound$u c 69 $U + M mixer$u c 69 $(( $U + 16 )) + M audio$u c 69 $(( $U + 128 )) + M audioctl$u c 69 $(( $U + 192 ));; +bpf*) + M bpf$U c 105 $U 600;; +tun*) + M tun$U c 105 $U 600;; +local) + test -s $T.local && sh $T.local;; + +*) + echo $i: unknown device + ;; +esac +done +} +R "$@" +eval $RMlist +for mode in $modes; do + eval ${mklist[$mode]} +done +eval $MKlist |