#!/bin/sh - # $OpenBSD: MAKEDEV.md,v 1.9 2002/12/05 04:30:21 kjc Exp $ # # Copyright (c) 1990 The Regents of the University of California. # All rights reserved. # # Written and contributed by W. Jolitz 12/90 # # Redistribution and use in source and binary forms are permitted provided # that: (1) source distributions retain this entire copyright notice and # comment, and (2) distributions including binaries display the following # acknowledgement: ``This product includes software developed by the # University of California, Berkeley and its contributors'' in the # documentation or other materials provided with the distribution and in # all advertising materials mentioning features or use of this software. # 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # # from: @(#)MAKEDEV 5.2 (Berkeley) 6/22/90 # $NetBSD: MAKEDEV,v 1.17 1996/02/03 15:02:42 briggs Exp $ # # Device "make" file. Valid arguments: _TITLE(make) _DEV(all) _DEV(std) _DEV(fdesc, 21) _DEV(ramd) _TITLE(tap) _DEV(st, 20, 5) _TITLE(dis) _DEV(wd, 11, 0) _DEV(sd, 8, 2) _DEV(cd, 9, 3) _DEV(vnd, 19, 14) _DEV(rd, 17, 17) _DEV(ccd, 18, 16) _DEV(raid, 54, 19) _TITLE(term) _DEV(wscons) _DEV(wsdisp, 67) _DEV(wskbd, 68) _DEV(com, 7) _TITLE(point) _DEV(wsmouse, 69) _TITLE(pty) _DEV(tty) _DEV(pty) _TITLE(graphics) _DEV(mac_grf) _TTILE(usb) _DEV(usb) _DEV(uid) _DEV(ulpt) _DEV(urio) _DEV(ugen) _DEV(utty) _TITLE(spec) _DEV(au) _DEV(ch) _DEV(bpf) _DEV(tun) _DEV(lkm) _DEV(rnd) _DEV(pf, 39) _DEV(systrace, 50) _DEV(usbs) # dnl divert(7)dnl dnl _std(1, 2, 43, 3, 6) M reload c 2 20 640 kmem ;; sd*|wd*|ccd*|ofdisk*|raid*) umask 2 ; unit=${i##*[a-z]} case $i in sd*) name=sd; blk=2; chr=8;; wd*) name=wd; blk=0; chr=11;; ofdisk*) name=ofdisk; blk=4; chr=13;; ccd*) name=ccd; blk=16; chr=18;; raid*) name=raid; blk=19; chr=54;; esac rm -f $name$unit? r$name$unit? case $unit in 0|1|2|3|4|5|6|7|8|9) mknod ${name}${unit}a b $blk $(( $unit * 16 + 0 )) mknod ${name}${unit}b b $blk $(( $unit * 16 + 1 )) mknod ${name}${unit}c b $blk $(( $unit * 16 + 2 )) mknod ${name}${unit}d b $blk $(( $unit * 16 + 3 )) mknod ${name}${unit}e b $blk $(( $unit * 16 + 4 )) mknod ${name}${unit}f b $blk $(( $unit * 16 + 5 )) mknod ${name}${unit}g b $blk $(( $unit * 16 + 6 )) mknod ${name}${unit}h b $blk $(( $unit * 16 + 7 )) mknod ${name}${unit}i b $blk $(( $unit * 16 + 8 )) mknod ${name}${unit}j b $blk $(( $unit * 16 + 9 )) mknod ${name}${unit}k b $blk $(( $unit * 16 + 10 )) mknod ${name}${unit}l b $blk $(( $unit * 16 + 11 )) mknod ${name}${unit}m b $blk $(( $unit * 16 + 12 )) mknod ${name}${unit}n b $blk $(( $unit * 16 + 13 )) mknod ${name}${unit}o b $blk $(( $unit * 16 + 14 )) mknod ${name}${unit}p b $blk $(( $unit * 16 + 15 )) mknod r${name}${unit}a c $chr $(( $unit * 16 + 0 )) mknod r${name}${unit}b c $chr $(( $unit * 16 + 1 )) mknod r${name}${unit}c c $chr $(( $unit * 16 + 2 )) mknod r${name}${unit}d c $chr $(( $unit * 16 + 3 )) mknod r${name}${unit}e c $chr $(( $unit * 16 + 4 )) mknod r${name}${unit}f c $chr $(( $unit * 16 + 5 )) mknod r${name}${unit}g c $chr $(( $unit * 16 + 6 )) mknod r${name}${unit}h c $chr $(( $unit * 16 + 7 )) mknod r${name}${unit}i c $chr $(( $unit * 16 + 8 )) mknod r${name}${unit}j c $chr $(( $unit * 16 + 9 )) mknod r${name}${unit}k c $chr $(( $unit * 16 + 10 )) mknod r${name}${unit}l c $chr $(( $unit * 16 + 11 )) mknod r${name}${unit}m c $chr $(( $unit * 16 + 12 )) mknod r${name}${unit}n c $chr $(( $unit * 16 + 13 )) mknod r${name}${unit}o c $chr $(( $unit * 16 + 14 )) mknod r${name}${unit}p c $chr $(( $unit * 16 + 15 )) chgrp 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 umask 77 ;; vnd*) umask 2 ; unit=${i##*[a-z]} for name in vnd svnd; do blk=14; chr=19; case $name in vnd) off=0;; svnd) off=128;; esac rm -f $name$unit? r$name$unit? mknod ${name}${unit}a b $blk $(( $unit * 16 + $off + 0 )) mknod ${name}${unit}b b $blk $(( $unit * 16 + $off + 1 )) mknod ${name}${unit}c b $blk $(( $unit * 16 + $off + 2 )) mknod ${name}${unit}d b $blk $(( $unit * 16 + $off + 3 )) mknod ${name}${unit}e b $blk $(( $unit * 16 + $off + 4 )) mknod ${name}${unit}f b $blk $(( $unit * 16 + $off + 5 )) mknod ${name}${unit}g b $blk $(( $unit * 16 + $off + 6 )) mknod ${name}${unit}h b $blk $(( $unit * 16 + $off + 7 )) mknod ${name}${unit}i b $blk $(( $unit * 16 + $off + 8 )) mknod ${name}${unit}j b $blk $(( $unit * 16 + $off + 9 )) mknod ${name}${unit}k b $blk $(( $unit * 16 + $off + 10 )) mknod ${name}${unit}l b $blk $(( $unit * 16 + $off + 11 )) mknod ${name}${unit}m b $blk $(( $unit * 16 + $off + 12 )) mknod ${name}${unit}n b $blk $(( $unit * 16 + $off + 13 )) mknod ${name}${unit}o b $blk $(( $unit * 16 + $off + 14 )) mknod ${name}${unit}p b $blk $(( $unit * 16 + $off + 15 )) mknod r${name}${unit}a c $chr $(( $unit * 16 + $off + 0 )) mknod r${name}${unit}b c $chr $(( $unit * 16 + $off + 1 )) mknod r${name}${unit}c c $chr $(( $unit * 16 + $off + 2 )) mknod r${name}${unit}d c $chr $(( $unit * 16 + $off + 3 )) mknod r${name}${unit}e c $chr $(( $unit * 16 + $off + 4 )) mknod r${name}${unit}f c $chr $(( $unit * 16 + $off + 5 )) mknod r${name}${unit}g c $chr $(( $unit * 16 + $off + 6 )) mknod r${name}${unit}h c $chr $(( $unit * 16 + $off + 7 )) mknod r${name}${unit}i c $chr $(( $unit * 16 + $off + 8 )) mknod r${name}${unit}j c $chr $(( $unit * 16 + $off + 9 )) mknod r${name}${unit}k c $chr $(( $unit * 16 + $off + 10 )) mknod r${name}${unit}l c $chr $(( $unit * 16 + $off + 11 )) mknod r${name}${unit}m c $chr $(( $unit * 16 + $off + 12 )) mknod r${name}${unit}n c $chr $(( $unit * 16 + $off + 13 )) mknod r${name}${unit}o c $chr $(( $unit * 16 + $off + 14 )) mknod r${name}${unit}p c $chr $(( $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 77 ;; tty0*) unit=${i##tty0} rm -f tty0$unit cua0$unit mknod tty0$unit c 7 $unit mknod cua0$unit c 7 `expr $unit + 128` chown uucp.dialer tty0$unit cua0$unit chmod 660 tty0$unit cua0$unit ;; pty*) class=${i##*[a-z]} case $class 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 $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 4 $(( $offset + $n )) mknod pty$nam c 5 $(( $offset + $n )) n="$(( $n + 1 ))" done umask 77 ;; esac ;; st*) umask 2 ; unit=${i##*[a-z]} case $i in st*) name=st; chr=20; 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 case $unit in 0|1|2|3|4|5|6) mknod ${name}${unit} b $blk $(( $unit * 16 + 0 )) mknod n${name}${unit} b $blk $(( $unit * 16 + 1 )) mknod e${name}${unit} b $blk $(( $unit * 16 + 2 )) mknod en${name}${unit} b $blk $(( $unit * 16 + 3 )) mknod r${name}${unit} c $chr $(( $unit * 16 + 0 )) mknod nr${name}${unit} c $chr $(( $unit * 16 + 1 )) mknod er${name}${unit} c $chr $(( $unit * 16 + 2 )) mknod enr${name}${unit} c $chr $(( $unit * 16 + 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} ;; *) echo bad unit for tape in: $i ;; esac umask 77 ;; ch*) umask 2 ; unit=${i##*[a-z]} case $i in ch*) name=ch; chr=10;; esac rm -f $name$unit case $unit in 0|1|2|3|4|5|6) mknod ${name}${unit} c $chr $unit chown root.operator ${name}${unit} chmod 660 ${name}${unit} ;; *) echo bad unit for media changer in: $i ;; esac umask 77 ;; cd*) umask 2 ; unit=${i##*[a-z]} case $i in cd*) name=cd; blk=3; chr=9;; esac rm -f $name$unit? r$name$unit? case $unit in 0|1|2|3|4|5|6) mknod ${name}${unit}a b $blk $(( $unit * 8 + 0 )) mknod ${name}${unit}c b $blk $(( $unit * 8 + 2 )) mknod r${name}${unit}a c $chr $(( $unit * 8 + 0 )) mknod r${name}${unit}c c $chr $(( $unit * 8 + 2 )) chgrp operator ${name}${unit}[a-h] r${name}${unit}[a-h] chmod 640 ${name}${unit}[a-h] r${name}${unit}[a-h] ;; *) echo bad unit for disk in: $i ;; esac umask 77 ;; audio*) major=44 audio=audio$unit sound=sound$unit mixer=mixer$unit audioctl=audioctl$unit rm -f $sound $audio $mixer $audioctl 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 [ -e audio ] || ln -s $audio audio [ -e mixer ] || ln -s $mixer mixer [ -e sound ] || ln -s $sound sound [ -e audioctl ] || ln -s $audioctl audioctl ;; usb*) rm -f usb$unit mknod usb$unit c 61 $unit chown root.wheel usb$unit chmod 660 usb$unit ;; uhid*) rm -f uhid$unit mknod uhid$unit c 62 $unit chown root.wheel uhid$unit chmod 660 uhid$unit ;; 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 $(( $unit * 16 + $j )) chown root.wheel ugen$unit.$j chmod 660 ugen$unit.$j done ;; ulpt*) rm -f ulpt$unit mknod ulpt$unit c 64 $unit chown root.wheel ulpt$unit chmod 660 ulpt$unit ;; urio*) rm -f urio$unit mknod urio$unit c 65 $unit chown root.wheel urio$unit chmod 660 urio$unit ;; utty*) rm -f utty$unit mknod utty$unit c 66 $unit chown root.wheel utty$unit chmod 660 utty$unit ;; ttyCcfg) major=67 minor=255 rm -f ttyCcfg mknod ttyCcfg c $major $minor chown root.wheel ttyCcfg ;; ttyC*) type=C unit=${i##ttyC} major=67 minor=$unit rm -f tty$type$unit mknod tty$type$unit c $major $minor chown root.wheel tty$type$unit ;; bpf*) unit=${i##*[a-z]} rm -f bpf${unit} mknod bpf${unit} c 22 ${unit} chown root.wheel bpf${unit} ;; pf) rm -f pf mknod pf c 39 0 chown root.wheel pf chmod 600 pf ;; tun*) unit=${i##*[a-z]} rm -f tun$unit mknod tun$unit c 23 $unit chmod 600 tun$unit chown root.wheel tun$unit ;; rd*) blk=17; chr=17; umask 2 ; unit=${i##*[a-z]} rm -f rd${unit}a rd${unit}c rrd${unit}a rrd${unit}c mknod rd${unit}a b ${blk} $(( $unit * 16 + 0 )) mknod rd${unit}c b ${blk} $(( $unit * 16 + 2 )) mknod rrd${unit}a c ${chr} $(( $unit * 16 + 0 )) mknod rrd${unit}c c ${chr} $(( $unit * 16 + 2 )) chown root.operator rd${unit}[ac] rrd${unit}[ac] chmod 640 rd${unit}[ac] rrd${unit}[ac] umask 77 ;; lkm) rm -f lkm mknod lkm c 24 0 chown root.kmem lkm chmod 640 lkm ;; pci*) rm -f pci mknod pci c 71 0 chown root.kmem pci chmod 600 pci ;; random|srandom|urandom|prandom|arandom) rm -f random urandom srandom prandom arandom mknod random c 40 0 mknod srandom c 40 1 mknod urandom c 40 2 mknod prandom c 40 3 mknod arandom c 40 4 chown root.wheel random srandom urandom prandom arandom chmod 644 random srandom urandom prandom arandom ;; uk*) unit=${i##*[a-z]} rm -f uk$unit mknod uk$unit c 41 $unit chown root.operator uk$unit chmod 640 uk$unit ;; ss*) unit=${i##*[a-z]} rm -f ss$unit mknod ss$unit c 42 $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 ;; wscons) sh $this wskbd0 wskbd1 wskbd2 wskbd3 sh $this wsmouse0 wsmouse1 wsmouse2 wsmouse3 sh $this ttyCcfg sh $this wsmux ;; wsmux|wsmouse|wskbd) rm -f wsmouse wskbd mknod wsmouse c 70 0 mknod wskbd c 70 1 chown root.wheel wsmouse wskbd chmod 600 wsmouse wskbd ;; wskbd*) unit=${i##*[a-z]} rm -f wskbd${unit} mknod wskbd${unit} c 68 ${unit} # XXX chmod 660 wskbd${unit} chown root.wheel wskbd${unit} ;; wsmouse*) unit=${i##*[a-z]} rm -f wsmouse${unit} mknod wsmouse${unit} c 69 ${unit} # XXX chmod 660 wsmouse${unit} chown root.wheel wsmouse${unit} ;; xfs*) rm -f xfs$unit mknod xfs$unit c 51 $unit chmod 600 xfs$unit chown root.wheel xfs$unit ;; 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 71 $unit chmod 644 altq/$dev unit=$(($unit + 1)) done ;; *) echo $i: unknown device esac done dnl dnl *** mvmeppc specific devices dnl target(all, ses, 0)dnl target(all, ch, 0)dnl target(all, ss, 0, 1)dnl target(all, xfs, 0)dnl twrget(all, flo, fd, 0, 0B, 0C, 0D, 0E, 0F, 0G, 0H)dnl twrget(all, flo, fd, 1, 1B, 1C, 1D, 1E, 1F, 1G, 1H)dnl target(all, pty, 0, 1, 2)dnl target(all, bpf, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9)dnl target(all, tun, 0, 1, 2, 3)dnl target(all, xy, 0, 1, 2, 3)dnl target(all, rd, 0)dnl target(all, cd, 0, 1)dnl target(all, sd, 0, 1, 2, 3, 4)dnl target(all, vnd, 0, 1, 2, 3)dnl target(all, ccd, 0, 1, 2, 3)dnl target(ramd, tty0, 0, 1, 2, 3)dnl twrget(ramd, wsdisp, ttyC, 0)dnl target(ramd, rd, 0)dnl target(ramd, wd, 0, 1, 2, 3)dnl target(ramd, sd, 0, 1, 2, 3, 4)dnl target(ramd, cd, 0, 1)dnl target(ramd, st, 0, 1)dnl target(ramd, bpf, 0)dnl target(ramd, rd, 0)dnl