--- /dev/null
+#!/bin/sh -
+#
+# THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
+# generated from:
+#
+# OpenBSD: etc.riscv64/MAKEDEV.md,v 1.1 2021/04/28 03:26:25 drahn Exp
+# OpenBSD: MAKEDEV.common,v 1.113 2021/02/12 10:26:33 jsg Exp
+# OpenBSD: MAKEDEV.mi,v 1.83 2016/09/11 03:06:31 deraadt Exp
+# OpenBSD: MAKEDEV.sub,v 1.14 2005/02/07 06:14:18 david Exp
+#
+#
+# Copyright (c) 2001-2004 Todd T. Fries <todd@OpenBSD.org>
+#
+# Permission to use, copy, modify, and distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Device "make" file. Valid arguments:
+# all makes all known devices, including local devices.
+# Tries to make the ``standard'' number of each type.
+# ramdisk Ramdisk kernel devices
+# std Standard devices
+# local Configuration specific devices
+# Disks:
+# cd* ATAPI and SCSI CD-ROM drives
+# rd* "rd" pseudo-disks
+# sd* SCSI disks, including flopticals
+# vnd* "file" pseudo-disk devices
+# Tapes:
+# ch* SCSI media changers
+# Terminal ports:
+# tty[0-7][0-9a-f] NS16x50 serial ports
+# Pseudo terminals:
+# ptm pty master device
+# pty* Set of 62 master pseudo terminals
+# tty* Set of 62 slave pseudo terminals
+# Console ports:
+# ttyC-J* wscons display devices
+# wscons Minimal wscons devices
+# wskbd* wscons keyboards
+# wsmux wscons keyboard/mouse mux devices
+# Pointing devices:
+# wsmouse* wscons mice
+# Printers:
+# USB devices:
+# ttyU* USB serial ports
+# uall All USB devices
+# ugen* Generic USB devices
+# uhid* Generic HID devices
+# fido fido/* nodes
+# ulpt* Printer devices
+# usb* Bus control devices used by usbd for attach/detach
+# Special purpose devices:
+# apm Power Management Interface
+# audio* Audio devices
+# bio ioctl tunnel pseudo-device
+# bktr* Video frame grabbers
+# bpf Berkeley Packet Filter
+# dt Dynamic Tracer
+# diskmap Disk mapper
+# fd fd/* nodes
+# fuse Userland Filesystem
+# gpio* General Purpose Input/Output
+# hotplug devices hot plugging
+# ipmi* IPMI BMC access
+# pci* PCI bus devices
+# pf* Packet Filter
+# pppx* PPP Multiplexer
+# pppac* PPP Access Concentrator
+# radio* FM tuner devices
+# *random In-kernel random data source
+# rmidi* Raw MIDI devices
+# tun* Network tunnel driver
+# tap* Ethernet tunnel driver
+# uk* Unknown SCSI devices
+# video* Video V4L2 devices
+# vscsi* Virtual SCSI controller
+# switch* Switch driver
+# kstat Kernel Statistics
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+T=$0
+
+# set this to echo for Echo-Only debugging
+[ "$eo" ] || eo=
+
+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
+}
+
+alph2d()
+{
+ local t="$1"
+ local p="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+ local sub=${p%${t}*}
+ echo ${#sub}
+}
+
+h2d()
+{
+ local s="$1"
+ local f=${s%*[0-9a-f]} n=${s#[0-9a-f]*}
+
+ echo $(($(_h2d $f)*16+ $(_h2d $n) ))
+}
+
+_h2d()
+{
+ case $1 in
+ [0-9]) echo -n $1;;
+ a) echo -n 10;;
+ b) echo -n 11;;
+ c) echo -n 12;;
+ d) echo -n 13;;
+ e) echo -n 14;;
+ f) echo -n 15;;
+ 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()
+{
+ [ "$DEBUG" ] && set -x
+ n=$(($((${5}*${7:-16}))+${6})) count=0
+ [ 0$7 -ne 8 ] && l="i j k l m n o p"
+ for d in a b c d e f g h $l
+ do
+ M $1$2$d b $3 $(($n+$count)) 640 operator
+ M r$1$2$d c $4 $(($n+$count)) 640 operator
+ let count=count+1
+ done
+}
+
+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[0]="rm -f"
+
+mkl() {
+ : ${mklist[0]:=";mknod"}
+ mklist[${#mklist[*]}]=" -m $1 $2 $3 $4 $5"
+}
+
+M() {
+ RMlist[${#RMlist[*]}]=$1
+ mkl ${5-666} $1 $2 $3 $4
+ G=${6:-wheel}
+ [ "$7" ] && {
+ MKlist[${#MKlist[*]}]="&& chown $7:$G $1"
+ } || {
+ case $G in
+ wheel)
+ [ ${#whlist[*]} = 0 ] && whlist[0]="&& chgrp wheel"
+ whlist[${#whlist[*]}]="$1"
+ ;;
+ operator)
+ [ ${#oplist[*]} = 0 ] && oplist[0]="&& chgrp operator"
+ oplist[${#oplist[*]}]="$1"
+ ;;
+ *)
+ MKlist[${#MKlist[*]}]="&& chgrp $G $1";
+ esac
+ }
+ return 0
+}
+
+R() {
+[ "$DEBUG" ] && set -x
+for i in "$@"
+do
+U=`unt $i`
+[ "$U" ] || U=0
+
+case $i in
+ramdisk)
+ R std bpf wd0 sd0 tty00 tty01 rd0 bio diskmap
+ R cd0 ttyC0 wskbd0 wskbd1 wskbd2 random
+ ;;
+
+std)
+ M console c 0 0 600
+ M tty c 1 0
+ M mem c 2 0 640 kmem
+ M kmem c 2 1 640 kmem
+ M null c 2 2
+ M zero c 2 12
+ M stdin c 22 0
+ M stdout c 22 1
+ M stderr c 22 2
+ M ksyms c 50 0 640 kmem
+ M klog c 7 0 600
+ M openprom c 70 0 600
+ ;;
+
+
+kstat)
+ M kstat c 51 0 640
+ ;;
+
+switch*)
+ M switch$U c 97 $U 600
+ ;;
+
+vscsi*)
+ M vscsi$U c 89 $U 600
+ ;;
+
+video*)
+ M video$U c 44 $U 600
+ MKlist[${#MKlist[*]}]=";[ -e video ] || ln -s video$U video"
+ ;;
+
+uk*)
+ M uk$U c 20 $U 640 operator
+ ;;
+
+tap*)
+ M tap$U c 93 $U 600
+ ;;
+
+tun*)
+ M tun$U c 40 $U 600
+ ;;
+
+rmidi*)
+ M rmidi$U c 52 $U 660 _sndiop
+ ;;
+
+*random)
+ M urandom c 45 0 644
+ RMlist[${#RMlist[*]}]=random
+ MKlist[${#MKlist[*]}]=";ln -s urandom random"
+ ;;
+
+radio*)
+ M radio$U c 76 $U
+ MKlist[${#MKlist[*]}]=";[ -e radio ] || ln -s radio$U radio"
+ ;;
+
+pppac*)
+ M pppac$U c 99 $U 600
+ ;;
+
+pppx*)
+ M pppx$U c 91 $U 600
+ ;;
+
+pf*)
+ M pf c 73 0 600
+ ;;
+
+pci*)
+ M pci$U c 72 $U 600
+ MKlist[${#MKlist[*]}]=";[ -h pci ] || ln -sf pci0 pci"
+ ;;
+
+ipmi*)
+ M ipmi$U c 96 $U 600
+ ;;
+
+hotplug)
+ M hotplug c 82 $U 400
+ ;;
+
+gpio*)
+ M gpio$U c 88 $U 600
+ ;;
+
+fuse)
+ M fuse$U c 92 $U 600
+ ;;
+
+fd)
+ RMlist[${#RMlist[*]}]=";mkdir -p fd;rm -f" n=0
+ while [ $n -lt 64 ];do M fd/$n c 22 $n;n=$(($n+1));done
+ MKlist[${#MKlist[*]}]=";chmod 555 fd"
+ ;;
+
+diskmap)
+ M diskmap c 90 0 640 operator
+ ;;
+
+dt)
+ M dt c 30 0 600
+ ;;
+
+bpf)
+ M bpf c 23 0 600
+ M bpf0 c 23 0 600
+ ;;
+
+bktr*)
+ M bktr$U c 49 $U 644
+ ;;
+
+bio)
+ M bio c 79 0 600
+ ;;
+
+audio*)
+ M audio$U c 42 $U 660 _sndiop
+ M audioctl$U c 42 $(($U+192)) 660 _sndiop
+ ;;
+
+apm*)
+ M apm c 83 0 644
+ M apmctl c 83 8 644
+ ;;
+
+usb*)
+ [ "$i" = "usb" ] && u= || u=$U
+ M usb$u c 61 $U 640
+ ;;
+
+ulpt*)
+ M ulpt$U c 64 $U 600
+ ;;
+
+fido)
+ RMlist[${#RMlist[*]}]=";mkdir -p fido;rm -f" n=0
+ while [ $n -lt 4 ];do M fido/$n c 98 $n 666;n=$(($n+1));done
+ MKlist[${#MKlist[*]}]=";chmod 555 fido"
+ ;;
+
+uhid*)
+ M uhid$U c 62 $U 600
+ ;;
+
+ugen*)
+ n=$(($U*16))
+ for j in 0{0,1,2,3,4,5,6,7,8,9} 1{0,1,2,3,4,5}
+ do
+ M ugen$U.$j c 63 $(($n+10#$j)) 600
+ done
+ ;;
+
+uall)
+ R ttyU0 ttyU1 ttyU2 ttyU3 ugen0 ugen1 ugen2 ugen3 ugen4 ugen5
+ R ugen6 ugen7 ulpt0 ulpt1 fido uhid0 uhid1 uhid2 uhid3 uhid4
+ R uhid5 uhid6 uhid7 usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
+ ;;
+
+ttyU[0-9a-zA-Z])
+ U=${i#ttyU*}
+ o=$(alph2d $U)
+ M ttyU$U c 66 $o 660 dialer root
+ M cuaU$U c 66 $(($o+128)) 660 dialer root
+ ;;
+
+wsmouse[0-9]*)
+ M wsmouse$U c 68 $U 600
+ ;;
+
+wsmux|wsmouse|wskbd)
+ M wsmouse c 69 0 600
+ M wskbd c 69 1 600
+ ;;
+
+wskbd[0-9]*)
+ M wskbd$U c 67 $U 600
+ ;;
+
+wscons)
+ R wsmouse0 wsmouse1 wsmouse2 wsmouse3 wsmouse4 wsmouse5
+ R wsmouse6 wsmouse7 wsmouse8 wsmouse9 wskbd0 wskbd1 wskbd2
+ R wskbd3 wsmux ttyCcfg ttyC0 ttyC1 ttyC2 ttyC3 ttyC4 ttyC5
+ R ttyC6 ttyC7 ttyC8 ttyC9 ttyCa ttyCb
+ ;;
+
+tty[C-J]*)
+ U=${i##tty[C-J]}
+ case $i in
+ ttyC*) n=C m=0;;
+ ttyD*) n=D m=256;;
+ ttyE*) n=E m=512;;
+ ttyF*) n=F m=768;;
+ ttyG*) n=G m=1024;;
+ ttyH*) n=H m=1280;;
+ ttyI*) n=I m=1536;;
+ ttyJ*) n=J m=1792;;
+ esac
+ case $U in
+ [0-9a-f]) M tty$n$U c 12 $((16#$U+$m)) 600;;
+ cfg) M tty${n}cfg c 12 $((255+$m)) 600;;
+ *) echo bad unit $U for $i; exit 1;;
+ esac
+ ;;
+
+pty*)
+ if [ $U -gt 15 ]; then
+ echo bad unit for pty in: $i
+ continue
+ fi
+ set -A letters p q r s t u v w x y z P Q R S T
+ set -A suffixes 0 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q \
+ r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X \
+ Y Z
+
+ name=${letters[$U]}
+ n=0
+ while [ $n -lt 62 ]
+ do
+ nam=$name${suffixes[$n]}
+ off=$(($U*62))
+ M tty$nam c 5 $(($off+$n))
+ M pty$nam c 6 $(($off+$n))
+ n=$(($n+1))
+ done
+ ;;
+
+ptm)
+ M ptm c 81 0 666
+ ;;
+
+tty[0-7][0-9a-f])
+ U=${i#tty*}
+ o=$(h2d $U)
+ M tty$U c 8 $o 660 dialer root
+ M cua$U c 8 $(($o+128)) 660 dialer root
+ ;;
+
+ch*)
+ M ch$U c 17 $U 660 operator
+ ;;
+
+vnd*)
+ dodisk vnd $U 14 41 $U 0
+ ;;
+
+rd*)
+ dodisk2 rd $U 8 47 $U 0
+ ;;
+
+cd*)
+ dodisk2 cd $U 6 15 $U 0
+ ;;
+
+local)
+ test -s $T.local && sh $T.local
+ ;;
+
+all)
+ R switch0 switch1 switch2 switch3 ipmi0 gpio0 gpio1 gpio2
+ R bktr0 vnd0 vnd1 vnd2 vnd3 sd0 sd1 sd2 sd3 sd4 sd5 sd6 sd7
+ R sd8 sd9 cd0 cd1 rd0 tap0 tap1 tap2 tap3 tun0 tun1 tun2 tun3
+ R bio pty0 diskmap vscsi0 ch0 audio0 audio1 audio2 audio3
+ R kstat dt bpf fuse pppac pppx hotplug ptm local wscons pci0
+ R pci1 pci2 pci3 uall rmidi0 rmidi1 rmidi2 rmidi3 rmidi4
+ R rmidi5 rmidi6 rmidi7 radio0 video0 video1 uk0 random tty00
+ R tty01 tty02 tty03 tty04 tty05 tty06 tty07 tty08 tty09 tty0a
+ R tty0b apm pf std fd
+ ;;
+
+sd*)
+ case $i in
+ sd*) dodisk sd $U 4 13 $U 0;;
+ esac
+ ;;
+
+*)
+ echo $i: unknown device
+ ;;
+esac
+done
+}
+R "$@"
+{
+echo -n ${RMlist[*]}
+echo -n ${mklist[*]}
+echo -n ${MKlist[*]}
+echo -n ${whlist[*]}
+echo ${oplist[*]}
+} | if [ "$eo" = "echo" ]; then
+ cat
+else
+ sh
+fi
--- /dev/null
+.\" $OpenBSD: MAKEDEV.8,v 1.1 2021/04/28 03:32:36 drahn Exp $
+.\"
+.\" THIS FILE AUTOMATICALLY GENERATED. DO NOT EDIT.
+.\" generated from:
+.\"
+.\" OpenBSD: etc.riscv64/MAKEDEV.md,v 1.1 2021/04/28 03:26:25 drahn Exp
+.\" OpenBSD: MAKEDEV.common,v 1.113 2021/02/12 10:26:33 jsg Exp
+.\" OpenBSD: MAKEDEV.man,v 1.9 2017/06/06 08:11:23 tb Exp
+.\" OpenBSD: MAKEDEV.mansub,v 1.2 2004/02/20 19:13:01 miod Exp
+.\"
+.\" Copyright (c) 2004, Miodrag Vallat
+.\" Copyright (c) 2001-2004 Todd T. Fries <todd@OpenBSD.org>
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate: April 28 2021 $
+.Dt MAKEDEV 8 riscv64
+.Os
+.Sh NAME
+.Nm MAKEDEV
+.Nd create system and device special files
+.Sh SYNOPSIS
+.Nm MAKEDEV
+.Op Ar name ...
+.Sh DESCRIPTION
+The shell script
+.Nm ,
+found in the
+.Pa /dev
+directory, is used to create various special files.
+See
+.Xr intro 4
+for a more complete discussion of special files.
+.Pp
+.Nm
+takes any number of device names as arguments, where the names are
+the common abbreviation for the device or group of devices.
+Files are created in the current working directory.
+.Pp
+Where a device name is followed by a star
+.Sq * ,
+the star must be replaced by a unit number.
+If units are expected for a device but not provided,
+.Nm
+will supply the standard numbers in most cases.
+.Pp
+The riscv64 supports the following devices:
+.Pp
+.Sy Special device names
+.Bl -tag -width tenletters -compact
+.It Ar all
+Creates special files for all devices on riscv64.
+.It Ar ramdisk
+Ramdisk kernel devices.
+.It Ar std
+Creates the
+.Sq standard
+devices (console, klog, kmem, ksyms, mem, null,
+stderr, stdin, stdout, tty, zero)
+which are absolutely necessary for the system to function properly.
+.It Ar local
+Creates configuration-specific devices, by invoking the shell file
+.Pa MAKEDEV.local .
+.El
+.Pp
+.Sy Disks
+.Bl -tag -width tenletters -compact
+.It Ar cd*
+ATAPI and SCSI CD-ROM drives, see
+.Xr cd 4 .
+.It Ar rd*
+.Dq rd
+pseudo-disks, see
+.Xr rd 4 .
+.It Ar sd*
+SCSI disks, including flopticals, see
+.Xr sd 4 .
+.It Ar vnd*
+.Dq file
+pseudo-disk devices, see
+.Xr vnd 4 .
+.El
+.Pp
+.Sy Tapes
+.Bl -tag -width tenletters -compact
+.It Ar ch*
+SCSI media changers, see
+.Xr ch 4 .
+.El
+.Pp
+.Sy Terminal ports
+.Bl -tag -width tenletters -compact
+.It Ar tty[0-7][0-9a-f]
+NS16x50 serial ports, see
+.Xr com 4 .
+.El
+.Pp
+.Sy Pseudo terminals
+.Bl -tag -width tenletters -compact
+.It Ar ptm
+pty master device, see
+.Xr ptm 4 .
+.It Ar pty*
+Set of 62 master pseudo terminals, see
+.Xr pty 4 .
+.It Ar tty*
+Set of 62 slave pseudo terminals, see
+.Xr tty 4 .
+.El
+.Pp
+.Sy Console ports
+.Bl -tag -width tenletters -compact
+.It Ar ttyC-J*
+wscons display devices, see
+.Xr wsdisplay 4 .
+.It Ar wscons
+Minimal wscons devices, see
+.Xr wscons 4 .
+.It Ar wskbd*
+wscons keyboards, see
+.Xr wskbd 4 .
+.It Ar wsmux
+wscons keyboard/mouse mux devices, see
+.Xr wsmux 4 .
+.El
+.Pp
+.Sy Pointing devices
+.Bl -tag -width tenletters -compact
+.It Ar wsmouse*
+wscons mice, see
+.Xr wsmouse 4 .
+.El
+.Pp
+.Sy Printers
+.Bl -tag -width tenletters -compact
+.El
+.Pp
+.Sy USB devices
+.Bl -tag -width tenletters -compact
+.It Ar ttyU*
+USB serial ports, see
+.Xr ucom 4 .
+.It Ar uall
+All USB devices, see
+.Xr usb 4 .
+.It Ar ugen*
+Generic USB devices, see
+.Xr ugen 4 .
+.It Ar uhid*
+Generic HID devices, see
+.Xr uhid 4 .
+.It Ar fido
+fido/* nodes, see
+.Xr fido 4 .
+.It Ar ulpt*
+Printer devices, see
+.Xr ulpt 4 .
+.It Ar usb*
+Bus control devices used by usbd for attach/detach, see
+.Xr usb 4 .
+.El
+.Pp
+.Sy Special purpose devices
+.Bl -tag -width tenletters -compact
+.It Ar apm
+Power Management Interface, see
+.Xr apm 4 .
+.It Ar audio*
+Audio devices, see
+.Xr audio 4 .
+.It Ar bio
+ioctl tunnel pseudo-device, see
+.Xr bio 4 .
+.It Ar bktr*
+Video frame grabbers, see
+.Xr bktr 4 .
+.It Ar bpf
+Berkeley Packet Filter, see
+.Xr bpf 4 .
+.It Ar dt
+Dynamic Tracer, see
+.Xr dt 4 .
+.It Ar diskmap
+Disk mapper, see
+.Xr diskmap 4 .
+.It Ar fd
+fd/* nodes, see
+.Xr fd 4 .
+.It Ar fuse
+Userland Filesystem, see
+.Xr fuse 4 .
+.It Ar gpio*
+General Purpose Input/Output, see
+.Xr gpio 4 .
+.It Ar hotplug
+devices hot plugging, see
+.Xr hotplug 4 .
+.It Ar ipmi*
+IPMI BMC access, see
+.Xr ipmi 4 .
+.It Ar pci*
+PCI bus devices, see
+.Xr pci 4 .
+.It Ar pf*
+Packet Filter, see
+.Xr pf 4 .
+.It Ar pppx*
+PPP Multiplexer, see
+.Xr pppx 4 .
+.It Ar pppac*
+PPP Access Concentrator, see
+.Xr pppac 4 .
+.It Ar radio*
+FM tuner devices, see
+.Xr radio 4 .
+.It Ar *random
+In-kernel random data source, see
+.Xr random 4 .
+.It Ar rmidi*
+Raw MIDI devices, see
+.Xr midi 4 .
+.It Ar tun*
+Network tunnel driver, see
+.Xr tun 4 .
+.It Ar tap*
+Ethernet tunnel driver, see
+.Xr tap 4 .
+.It Ar uk*
+Unknown SCSI devices, see
+.Xr uk 4 .
+.It Ar video*
+Video V4L2 devices, see
+.Xr video 4 .
+.It Ar vscsi*
+Virtual SCSI controller, see
+.Xr vscsi 4 .
+.It Ar switch*
+Switch driver, see
+.Xr switch 4 .
+.It Ar kstat
+Kernel Statistics, see
+.Xr kstat 4 .
+.El
+.Sh FILES
+.Bl -tag -width /dev -compact
+.It Pa /dev
+The special file directory.
+.El
+.Sh SEE ALSO
+.Xr intro 4 ,
+.Xr config 8 ,
+.Xr mknod 8