MAKEDEV.tmpl revision 1.51
1168404Spjd#!/bin/sh - 2168404Spjd# $NetBSD: MAKEDEV.tmpl,v 1.51 2006/03/25 17:19:02 christos Exp $ 3168404Spjd# 4168404Spjd# Copyright (c) 2003 The NetBSD Foundation, Inc. 5168404Spjd# All rights reserved. 6168404Spjd# 7168404Spjd# Redistribution and use in source and binary forms, with or without 8168404Spjd# modification, are permitted provided that the following conditions 9168404Spjd# are met: 10168404Spjd# 1. Redistributions of source code must retain the above copyright 11168404Spjd# notice, this list of conditions and the following disclaimer. 12168404Spjd# 2. Redistributions in binary form must reproduce the above copyright 13168404Spjd# notice, this list of conditions and the following disclaimer in the 14168404Spjd# documentation and/or other materials provided with the distribution. 15168404Spjd# 3. All advertising materials mentioning features or use of this software 16168404Spjd# must display the following acknowledgement: 17168404Spjd# This product includes software developed by the NetBSD 18168404Spjd# Foundation, Inc. and its contributors. 19168404Spjd# 4. Neither the name of The NetBSD Foundation nor the names of its 20168404Spjd# contributors may be used to endorse or promote products derived 21168404Spjd# from this software without specific prior written permission. 22185029Spjd# 23168404Spjd# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 24168404Spjd# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 25168404Spjd# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 26168404Spjd# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 27168404Spjd# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28168404Spjd# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29168404Spjd# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30168404Spjd# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 31168404Spjd# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 32168404Spjd# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33168404Spjd# POSSIBILITY OF SUCH DAMAGE. 34168404Spjd# 35168404Spjd# 36168404Spjd########################################################################### 37168404Spjd# 38168404Spjd# PLEASE RUN "cd ../share/man/man8 ; make makedevs" 39168404Spjd# AFTER CHANGING THIS FILE, AND COMMIT THE UPDATED MANPAGE! 40168404Spjd# 41168404Spjd########################################################################### 42168404Spjd# 43168404Spjd# Device "make" file. Valid special arguments: 44168404Spjd# all makes all known devices, including local devices. 45168404Spjd# Tries to make the 'standard' number of each type. 46168404Spjd# init A set of devices that is used for MFS /dev by init. 47168404Spjd# May be equal to "all". 48168404Spjd# floppy devices to be put on install floppies 49168404Spjd# ramdisk devices to be put into INSTALL kernel ramdisks. 50168404Spjd# std standard devices 51168404Spjd# local configuration specific devices 52168404Spjd# wscons make wscons devices 53168404Spjd# usbs make USB devices 54168404Spjd# isdns make ISDN devices 55168404Spjd# 56168404Spjd# Tapes: 57168404Spjd# st* SCSI tapes 58168404Spjd# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape 59168404Spjd# ht* MASSBUS TM03 and TU?? 60168404Spjd# mt* MSCP tapes (e.g. TU81, TK50) 61168404Spjd# tm* UNIBUS TM11 and TE10 emulations (e.g. Emulex TC-11) 62168404Spjd# ts* UNIBUS TS11 63168404Spjd# ut* UNIBUS TU45 emulations (e.g. si 9700) 64168404Spjd# uu* TU58 cassettes on DL11 controller 65168404Spjd# 66168404Spjd# Disks: 67168404Spjd# ccd* concatenated disk devices 68168404Spjd# cd* SCSI or ATAPI CD-ROM 69168404Spjd# cgd* cryptographic disk devices 70168404Spjd# raid* RAIDframe disk devices 71169028Spjd# sd* SCSI disks 72168404Spjd# wd* "winchester" disk drives (ST506,IDE,ESDI,RLL,...) 73168404Spjd# bmd* Nereid bank memory disks 74168404Spjd# ed* IBM PS/2 ESDI disk devices 75168404Spjd# fd* "floppy" disk drives (3 1/2", 5 1/4") 76168404Spjd# fss* Files system snapshot devices 77168404Spjd# gdrom* Dreamcast "gigadisc" CD-ROM drive 78168404Spjd# hk* UNIBUS RK06 and RK07 79168404Spjd# hp* MASSBUS RM?? 80168404Spjd# ld* Logical disk devices (e.g., hardware RAID) 81168404Spjd# mcd* Mitsumi CD-ROM 82168404Spjd# md* memory pseudo-disk devices 83168404Spjd# ofdisk* OpenFirmware disk devices 84168404Spjd# ra* MSCP disks (RA??, RD??) 85168404Spjd# rb* 730 IDC w/ RB80 and/or RB02 86168404Spjd# rd* HDC9224 RD disks on VS2000 87168404Spjd# rl* UNIBUS RL02 88168404Spjd# rx* MSCP floppy disk (RX33/50/...) 89168404Spjd# up* other UNIBUS devices (e.g. on Emulex SC-21V controller) 90168404Spjd# vnd* "file" pseudo-disks 91168404Spjd# xbd* Xen virtual disks 92168404Spjd# xd* Xylogic 753/7053 disks 93168404Spjd# xy* Xylogic 450/451 disks 94168404Spjd# 95168404Spjd# Pointing devices: 96168404Spjd# wsmouse* wscons mouse events 97168404Spjd# lms* Logitech bus mouse 98168404Spjd# mms* Microsoft bus mouse 99168404Spjd# qms* "quadrature mouse" 100168404Spjd# pms* PS/2 mouse 101168404Spjd# mouse mouse (provides events, for X11) 102168404Spjd# 103168404Spjd# Keyboard devices: 104168404Spjd# wskbd* wscons keyboard events 105168404Spjd# kbd raw keyboard (provides events, for X11) 106168404Spjd# kbdctl keyboard control 107168404Spjd# 108168404Spjd# Terminals/Console ports: 109168404Spjd# tty[01]* standard serial ports 110168404Spjd# tty0* SB1250 ("sbscn") serial ports (sbmips) 111168404Spjd# ttyE* wscons - Workstation console ("wscons") glass-tty emulators 112168404Spjd# ttyCZ? Cyclades-Z multiport serial boards. Each "unit" 113168404Spjd# makes 64 ports. 114168404Spjd# ttyCY? Cyclom-Y multiport serial boards. Each "unit" makes 115168404Spjd# 32 ports. 116168404Spjd# ttye* ITE bitmapped consoles 117168404Spjd# ttyv0 pccons 118168404Spjd# ttyC? NS16550 ("com") serial ports 119168404Spjd# ttyS* SA1110 serial port (hpcarm) 120168404Spjd# ttyTX? TX39 internal serial ports (hpcmips) 121168404Spjd# ttyB? DEC 3000 ZS8530 ("scc") serial ports (alpha) 122168404Spjd# ttyA* mfc serial ports (amiga) 123168404Spjd# ttyB* msc serial ports (amiga) 124168404Spjd# ttyC* com style serial ports (DraCo, HyperCom) (amiga) 125168404Spjd# On the DraCo, units 0 and 1 are the built-in "modem" and 126168404Spjd# "mouse" ports, if configured. 127168404Spjd# ttyA0 8530 Channel A (formerly ser02) (atari) 128168404Spjd# ttyA1 8530 Channel B (formerly mdm02) (atari) 129168404Spjd# ttyB0 UART on first 68901 (formerly mdm01) (atari) 130168404Spjd# ixpcom IXP12x0 COM ports 131168404Spjd# epcom EP93xx COM ports 132168404Spjd# ttyM? HP200/300 4 port serial mux interface (hp300) 133168404Spjd# ttya "ttya" system console (luna68k) 134168404Spjd# ttyb second system serial port (luna68k) 135168404Spjd# tty* Onboard serial ports (mvme68k) 136168404Spjd# On the mvme147 these are: ttyZ1, ttyZ2 and ttyZ3. 137168404Spjd# On the mvme167, and '177: ttyC1, ttyC2 and ttyC3. 138168404Spjd# Note that tty[CZ]0 is grabbed by the console device 139168404Spjd# so is not created by default 140168404Spjd# dc* PMAX 4 channel serial interface (kbd, mouse, modem, printer) 141168404Spjd# scc* 82530 serial interface (pmax) 142168404Spjd# ttyZ* Zilog 8530 ("zstty") serial ports 143168404Spjd# tty[abcd] Built-in serial ports (sparc) 144168404Spjd# tty* Z88530 serial controllers (sparc64) 145168404Spjd# ttyh* SAB82532 serial controllers (sparc64) 146168404Spjd# tty[a-j] Built-in serial ports (sun2, sun3) 147168404Spjd# ttyC? pccons (arc) 148168404Spjd# dz* UNIBUS DZ11 and DZ32 (vax) 149168404Spjd# dh* UNIBUS DH11 and emulations (e.g. Able DMAX, Emulex CS-11) (vax) 150168404Spjd# dmf* UNIBUS DMF32 (vax) 151168404Spjd# dhu* UNIBUS DHU11 (vax) 152168404Spjd# dmz* UNIBUS DMZ32 (vax) 153168404Spjd# dl* UNIBUS DL11 (vax) 154168404Spjd# xencons Xen virtual console 155168404Spjd# 156168404Spjd# Terminal multiplexors: 157168404Spjd# dc* 4 channel serial interface (keyboard, mouse, modem, printer) 158168404Spjd# dh* UNIBUS DH11 and emulations (e.g. Able DMAX, Emulex CS-11) 159168404Spjd# dhu* UNIBUS DHU11 160168404Spjd# dl* UNIBUS DL11 161168404Spjd# dmf* UNIBUS DMF32 162168404Spjd# dmz* UNIBUS DMZ32 163168404Spjd# dz* UNIBUS DZ11 and DZ32 164168404Spjd# scc* 82530 serial interface 165168404Spjd# 166168404Spjd# Call units: 167168404Spjd# dn* UNIBUS DN11 and emulations (e.g. Able Quadracall) 168168404Spjd# 169168404Spjd# Pseudo terminals: 170168404Spjd# ptm pty multiplexor device. 171168404Spjd# pty* set of 16 master and slave pseudo terminals 172168404Spjd# opty first 16 ptys, to save inodes on install media 173168404Spjd# ipty first 2 ptys, for install media use only 174168404Spjd# 175185029Spjd# Printers: 176185029Spjd# arcpp* Archimedes parallel port 177185029Spjd# lpt* stock lp 178185029Spjd# lpa* interruptless lp 179185029Spjd# par* Amiga motherboard parallel port 180168404Spjd# 181168404Spjd# USB devices: 182168404Spjd# usb* USB control devices 183168404Spjd# uhid* USB generic HID devices 184168404Spjd# ulpt* USB printer devices 185168404Spjd# ugen* USB generic devices 186168404Spjd# urio* USB Diamond Rio 500 devices 187168404Spjd# uscanner* USB scanners 188168404Spjd# ttyU* USB modems 189168404Spjd# ttyY* USB serial adapters 190185029Spjd# 191185029Spjd# ISDN devices: 192168404Spjd# isdn communication between userland isdnd and kernel 193168404Spjd# isdnctl control device 194185029Spjd# isdnbchan* raw b-channel access 195185029Spjd# isdntel* telephony device 196168404Spjd# isdnteld* telephony dialout device 197168404Spjd# isdntrc* trace device 198168404Spjd# 199185029Spjd# Video devices: 200185029Spjd# bwtwo* monochromatic frame buffer 201185029Spjd# cgtwo* 8-bit color frame buffer 202185029Spjd# cgthree* 8-bit color frame buffer 203185029Spjd# cgfour* 8-bit color frame buffer 204168404Spjd# cgsix* accelerated 8-bit color frame buffer 205168404Spjd# cgeight* 24-bit color frame buffer 206168404Spjd# etvme Tseng et-compatible cards on VME (atari) 207168404Spjd# ik* UNIBUS interface to Ikonas frame buffer 208168404Spjd# leo Circad Leonardo VME-bus true color (atari) 209168404Spjd# ps* UNIBUS interface to Picture System 2 210168404Spjd# qv* QVSS (MicroVAX) display 211168404Spjd# tcx* accelerated 8/24-bit color frame buffer 212168404Spjd# 213168404Spjd# Maple bus devices: 214168404Spjd# maple Maple bus control devices 215168404Spjd# mlcd* Maple bus LCD devices 216168404Spjd# mmem* Maple bus storage devices 217168404Spjd# 218168404Spjd# IEEE1394 bus devices: 219168404Spjd# fw* IEEE1394 bus generic node access devices 220168404Spjd# fwmem* IEEE1394 bus physical memory of the remote node access devices 221168404Spjd# 222168404Spjd# Special purpose devices: 223168404Spjd# ad* UNIBUS interface to Data Translation A/D converter 224168404Spjd# agp* AGP GART devices 225168404Spjd# altq ALTQ control interface 226168404Spjd# apm power management device 227168404Spjd# audio* audio devices 228168404Spjd# bell* OPM bell device (x68k) 229168404Spjd# bktr Brooktree 848/849/878/879 based TV cards 230168404Spjd# bpf packet filter 231168404Spjd# cfs* Coda file system device 232168404Spjd# ch* SCSI media changer 233168404Spjd# cir* Consumer IR 234168404Spjd# clockctl clock control for non root users 235168404Spjd# crypto hardware crypto access driver 236168404Spjd# dmoverio hardware-assisted data movers 237168404Spjd# dpt* DPT/Adaptec EATA RAID management interface 238168404Spjd# dpti* DPT/Adaptec I2O RAID management interface 239168404Spjd# fb* PMAX generic framebuffer pseudo-device 240168404Spjd# fd file descriptors 241168404Spjd# grf* graphics frame buffer device 242168404Spjd# hil HP300 HIL input devices 243168404Spjd# icp ICP-Vortex/Intel RAID control interface 244168404Spjd# iic* IIC bus device 245168404Spjd# iop* I2O IOP control interface 246168404Spjd# ipl IP Filter 247168404Spjd# irframe* IrDA physical frame 248168404Spjd# ite* terminal emulator interface to HP300 graphics devices 249168404Spjd# joy* joystick device 250168404Spjd# kttcp kernel ttcp helper device 251168404Spjd# lkm loadable kernel modules interface 252168404Spjd# magma* Magma multiport serial/parallel cards 253168404Spjd# midi* MIDI 254168404Spjd# mlx* Mylex DAC960 control interface 255168404Spjd# mly* Mylex AcceleRAID/eXtremeRAID control interface 256168404Spjd# np* UNIBUS Ethernet co-processor interface, for downloading. 257168404Spjd# nsmb* SMB requester 258168404Spjd# openfirm OpenFirmware accessor 259168404Spjd# pci* PCI bus access devices 260168404Spjd# pf PF packet filter 261168404Spjd# pow* power management device (x68k) 262168404Spjd# px* PixelStamp Xserver access 263168404Spjd# radio* radio devices 264168404Spjd# random Random number generator 265168404Spjd# rtc* RealTimeClock 266168404Spjd# satlink* PlanetConnect satellite receiver driver 267168404Spjd# scsibus* SCSI busses 268168404Spjd# se* SCSI Ethernet 269168404Spjd# ses* SES/SAF-TE SCSI Devices 270168404Spjd# speaker PC speaker (XXX - installed) 271168404Spjd# sram battery backuped memory (x68k) 272168404Spjd# ss* SCSI scanner 273168404Spjd# stic* PixelStamp interface chip 274168404Spjd# sysmon System Monitoring hardware 275168404Spjd# systrace syscall tracer 276168404Spjd# tap* virtual Ethernet device 277168404Spjd# tun* network tunnel driver 278168404Spjd# twe 3ware Escalade control interface 279168404Spjd# uk* unknown SCSI device 280168404Spjd# veriexec verified executable fingerprint loader 281168404Spjd# vmegen* generic VME access 282168404Spjd# view* generic interface to graphic displays (Amiga) 283168404Spjd# wsfont* console font control 284168404Spjd# wsmux* wscons event multiplexor 285168404Spjd# xenevt Xen event interface 286168404Spjd 287168404Spjd 288168404SpjdPATH=/sbin:/usr/sbin:/bin:/usr/bin:/rescue 289168404Spjd 290168404Spjd 291168404Spjdusage() 292168404Spjd{ 293168404Spjd cat 1>&2 << _USAGE_ 294168404SpjdUsage: ${0##*/} [-f] [-m mknod] [-s] special [...] 295168404Spjd Create listed special devices. Options: 296168404Spjd -f Force permissions to be updated on existing devices. 297168404Spjd -m mknod Name of mknod(8) program. [\$TOOL_MKNOD or mknod] 298185029Spjd -s Generate mtree(8) specfile instead of creating devices. 299185029Spjd 300168404Spjd_USAGE_ 301168404Spjd exit 1 302168404Spjd} 303168404Spjd 304168404Spjd# zeropad width number 305168404Spjd# display number with a zero (`0') padding of width digits. 306168404Spjd# 307168404Spjdzeropad() 308168404Spjd{ 309168404Spjd case $(($1 - ${#2})) in 310168404Spjd 5) echo 00000$2;; 311168404Spjd 4) echo 0000$2;; 312168404Spjd 3) echo 000$2;; 313168404Spjd 2) echo 00$2;; 314168404Spjd 1) echo 0$2;; 315168404Spjd 0) echo $2;; 316168404Spjd *) echo "$0: bad padding" 1>&2; exit 1;; 317168404Spjd esac 318168404Spjd} 319168404Spjd 320168404Spjd# hexprint number 321168404Spjd# display (base10) number as hexadecimal 322168404Spjd# 323168404Spjdhexprint() 324168404Spjd{ 325168404Spjd case $1 in 326168404Spjd [0-9]) echo $1 ;; 327168404Spjd 10) echo a ;; 328168404Spjd 11) echo b ;; 329168404Spjd 12) echo c ;; 330168404Spjd 13) echo d ;; 331168404Spjd 14) echo e ;; 332168404Spjd 15) echo f ;; 333168404Spjd *) echo $(hexprint $(($1 / 16)))$(hexprint $(($1 % 16))) ;; 334168404Spjd esac 335168404Spjd} 336168404Spjd 337168404Spjddo_force=false 338168404Spjddo_specfile=false 339168404Spjdwhile getopts fm:s ch; do 340168404Spjd case ${ch} in 341168404Spjd f) do_force=true ;; 342168404Spjd m) TOOL_MKNOD=${OPTARG} ;; 343168404Spjd s) do_specfile=true ;; 344168404Spjd *) usage ;; 345168404Spjd esac 346168404Spjddone 347168404Spjdshift $((${OPTIND} - 1)) 348168404Spjd[ $# -gt 0 ] || usage 349168404Spjd 350168404Spjd 351168404SpjdMKNOD="${TOOL_MKNOD:-mknod} -F netbsd" 352168404Spjdif $do_force; then 353168404Spjd MKNOD="${MKNOD} -R" 354168404Spjdelse 355168404Spjd MKNOD="${MKNOD} -r" 356168404Spjdfi 357168404Spjd 358168404Spjdu_root="%uid_root%" 359168404Spjdu_uucp="%uid_uucp%" 360168404Spjdg_kmem="%gid_kmem%" 361168404Spjdg_ntpd="%gid_ntpd%" 362168404Spjdg_operator="%gid_operator%" 363168404Spjdg_wheel="%gid_wheel%" 364168404Spjddialin=0 365168404Spjddialout=524288 366168404Spjdcallunit=262144 367168404Spjd 368168404Spjd# only allow read&write for owner by default 369168404Spjdumask 077 370168404Spjd 371168404Spjd# Check if we have fdesc mounted 372168404Spjdif [ -d fd ]; then 373168404Spjd case "`df fd`" in 374168404Spjd *fdesc*) nofdesc=false;; 375168404Spjd *) nofdesc=true;; 376168404Spjd esac 377168404Spjdelse 378168404Spjd nofdesc=true 379168404Spjdfi 380168404Spjd 381168404Spjd 382168404Spjdif $do_specfile; then 383168404Spjd echo ". type=dir" 384168404Spjdfi 385168404Spjd 386168404Spjd 387168404Spjd# 388168404Spjd# functions available to create nodes: 389168404Spjd# 390168404Spjd# mkdev name [b|c] major minor [mode{=600} [gid{=0} [uid{=0}]]] 391168404Spjd# create device node `name' with the appropriate permissions 392168404Spjd# 393168404Spjd# lndev src target 394168404Spjd# create a symlink from src to target 395168404Spjd# 396168404Spjd# makedir dir mode 397168404Spjd# create directory with appropriate mode 398168404Spjd# 399168404Spjd 400168404Spjdmkdev() 401168404Spjd{ 402168404Spjd if $do_specfile; then 403168404Spjd case $2 in 404168404Spjd b) type=block ;; 405168404Spjd c) type=char ;; 406168404Spjd esac 407168404Spjd echo "./$1 type=${type} device=netbsd,$3,$4 mode=${5:-600} gid=${6:-$g_wheel} uid=${7:-$u_root}" 408168404Spjd else 409168404Spjd ${MKNOD} -m ${5:-600} -g \#${6:-$g_wheel} -u \#${7:-$u_root} $1 $2 $3 $4 410168404Spjd fi 411168404Spjd} 412168404Spjd 413168404Spjdlndev() 414168404Spjd{ 415168404Spjd if $do_specfile; then 416168404Spjd echo "./$2 type=link link=$1 mode=0700 gid=$g_wheel uid=$u_root" 417168404Spjd else 418168404Spjd ln -f -s $1 $2 419168404Spjd fi 420168404Spjd} 421168404Spjd 422168404Spjdmakedir() 423168404Spjd{ 424168404Spjd if $do_specfile; then 425168404Spjd echo "./$1 type=dir mode=$2 gid=$g_wheel uid=$u_root" 426168404Spjd else 427168404Spjd mkdir $1 2>/dev/null 428168404Spjd chmod $2 $1 429168404Spjd fi 430168404Spjd} 431168404Spjd 432168404Spjdwarn() 433168404Spjd{ 434168404Spjd echo 1>&2 "$0: $*" 435168404Spjd} 436168404Spjd 437168404Spjd 438168404Spjd 439185029Spjd# makedev special [...] 440185029Spjd# the main loop 441185029Spjd# 442185029Spjd 443185029Spjdmakedev() 444185029Spjd{ 445185029Spjd 446185029Spjdfor i 447185029Spjddo 448185029Spjd 449168404Spjdcase $i in 450168404Spjd 451168404Spjd%MD_DEVICES% 452168404Spjd 453168404Spjdall) 454168404Spjd makedev all_md 455168404Spjd makedev std fd ptm pty0 pty1 pty2 pty3 456168404Spjd makedev ccd0 ccd1 ccd2 ccd3 457168404Spjd makedev cgd0 cgd1 cgd2 cgd3 458168404Spjd makedev fss0 fss1 fss2 fss3 459168404Spjd makedev md0 md1 460168404Spjd makedev raid0 raid1 raid2 raid3 raid4 raid5 raid6 raid7 461168404Spjd makedev vnd0 vnd1 vnd2 vnd3 462168404Spjd makedev bpf 463168404Spjd makedev tun0 tun1 tun2 tun3 464168404Spjd makedev ipl pf crypto random systrace 465168404Spjd makedev lkm clockctl 466168404Spjd makedev local 467168404Spjd makedev atabus0 atabus1 atabus2 atabus3 468168404Spjd makedev tap tap0 tap1 tap2 tap3 469168404Spjd makedev gpio gpio0 gpio1 gpio2 gpio3 gpio4 gpio5 gpio6 gpio7 470168404Spjd ;; 471168404Spjd 472185029Spjdinit) 473168404Spjd # unless overridden by MD entry, this is equal to 'all' 474185029Spjd makedev all 475185029Spjd ;; 476185029Spjd 477185029Spjd%MI_DEVICES_BEGIN% 478185029Spjdaudio) 479185029Spjd makedev audio0 audio1 audio2 audio3 480185029Spjd lndev sound0 sound 481185029Spjd lndev audio0 audio 482185029Spjd lndev mixer0 mixer 483185029Spjd lndev audioctl0 audioctl 484185029Spjd ;; 485185029Spjd 486185029Spjdgpio) 487185029Spjd makedev gpio0 gpio1 gpio2 gpio3 gpio4 gpio5 gpio6 gpio7 488168404Spjd lndev gpio0 gpio 489168404Spjd ;; 490185029Spjd 491185029Spjdradio) 492185029Spjd makedev radio0 radio1 493185029Spjd lndev radio0 radio 494185029Spjd ;; 495185029Spjd 496185029Spjdramdisk) 497185029Spjd makedev floppy md0 498185029Spjd ;; 499185029Spjd 500185029Spjdusbs) 501185029Spjd makedev usb usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7 502185029Spjd makedev uhid0 uhid1 uhid2 uhid3 503168404Spjd makedev ulpt0 ulpt1 504168404Spjd makedev ttyU0 ttyU1 505200724Sdelphij makedev ttyY0 ttyY1 506200724Sdelphij makedev urio0 507200724Sdelphij makedev uscanner0 uscanner1 508200724Sdelphij makedev ugen0 509200724Sdelphij ;; 510200724Sdelphij 511200724Sdelphijisdns) 512200724Sdelphij makedev isdn isdnctl isdnbchan0 isdnbchan1 isdntel0 isdntel1 isdnteld0 isdnteld1 isdntrc0 isdntrc1 513200724Sdelphij ;; 514200724Sdelphij 515200724Sdelphijstd) 516200724Sdelphij mkdev console c %cons_chr% 0 600 517200724Sdelphij mkdev constty c %cons_chr% 1 600 518200724Sdelphij mkdev drum c %swap_chr% 0 640 $g_kmem 519200724Sdelphij mkdev kmem c %mem_chr% 1 640 $g_kmem 520200724Sdelphij mkdev mem c %mem_chr% 0 640 $g_kmem 521200724Sdelphij mkdev null c %mem_chr% 2 666 522200724Sdelphij mkdev zero c %mem_chr% 12 666 523200724Sdelphij mkdev klog c %log_chr% 0 600 524168404Spjd mkdev ksyms c %ksyms_chr% 0 444 525168404Spjd if $nofdesc; then 526168404Spjd mkdev tty c %ctty_chr% 0 666 527168404Spjd mkdev stdin c %filedesc_chr% 0 666 528168404Spjd mkdev stdout c %filedesc_chr% 1 666 529168404Spjd mkdev stderr c %filedesc_chr% 2 666 530168404Spjd fi 531168404Spjd ;; 532168404Spjd 533168404Spjdusb) 534185029Spjd mkdev usb c %usb_chr% 255 444 535168404Spjd ;; 536185029Spjd 537168404Spjdusb*) 538168404Spjd unit=${i#usb} 539168404Spjd usb=usb$unit 540168404Spjd mkdev usb$unit c %usb_chr% $unit 541168404Spjd ;; 542168404Spjd 543168404Spjduhid*) 544200724Sdelphij unit=${i#uhid} 545200724Sdelphij mkdev uhid$unit c %uhid_chr% $unit 666 546200724Sdelphij ;; 547200724Sdelphij 548200724Sdelphijulpt*) 549200724Sdelphij unit=${i#ulpt} 550200724Sdelphij mkdev ulpt$unit c %ulpt_chr% $unit 551200724Sdelphij mkdev ulpn$unit c %ulpt_chr% $(($unit + 64)) 552200724Sdelphij ;; 553200724Sdelphij 554200724Sdelphijurio*) 555200724Sdelphij unit=${i#urio} 556200724Sdelphij mkdev urio$unit c %urio_chr% $unit 666 557200724Sdelphij ;; 558200724Sdelphij 559168404Spjduscanner*) 560168404Spjd unit=${i#uscanner} 561168404Spjd mkdev uscanner$unit c %uscanner_chr% $unit 562168404Spjd ;; 563168404Spjd 564168404SpjdttyY*) 565168404Spjd unit=${i#ttyY} 566168404Spjd mkdev ttyY$unit c %ucycom_chr% $(($unit + $dialin )) "" "" $u_uucp 567168404Spjd mkdev dtyY$unit c %ucycom_chr% $(($unit + $dialout )) "" "" $u_uucp 568168404Spjd mkdev ctyY$unit c %ucycom_chr% $(($unit + $callunit)) "" "" $u_uucp 569168404Spjd ;; 570168404Spjd 571168404SpjdttyU*) 572168404Spjd unit=${i#ttyU} 573168404Spjd mkdev ttyU$unit c %ucom_chr% $(($unit + $dialin )) "" "" $u_uucp 574168404Spjd mkdev dtyU$unit c %ucom_chr% $(($unit + $dialout )) "" "" $u_uucp 575168404Spjd mkdev ctyU$unit c %ucom_chr% $(($unit + $callunit)) "" "" $u_uucp 576168404Spjd ;; 577168404Spjd 578185029Spjdugen*) 579185029Spjd unit=${i#ugen} 580185029Spjd for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 581185029Spjd do 582185029Spjd mkdev ugen$unit.$j c %ugen_chr% $(($unit * 16 + ${j#0})) 583185029Spjd done 584185029Spjd ;; 585185029Spjd 586168404Spjdwscons) 587185029Spjd makedev ttyE0 ttyE1 ttyE2 ttyE3 ttyE4 ttyE5 ttyE6 ttyE7 588185029Spjd makedev wsmouse0 wsmouse1 wsmouse2 wsmouse3 589185029Spjd makedev wskbd0 wskbd1 wskbd2 wskbd3 590185029Spjd makedev wsmux0 wsmux1 wsmux2 wsmux3 591185029Spjd makedev wsmouse wskbd 592185029Spjd makedev ttyEcfg ttyEstat 593185029Spjd makedev wsfont 594185029Spjd ;; 595168404Spjd 596185029Spjdwsmouse) 597185029Spjd mkdev wsmouse c %wsmux_chr% 0 598185029Spjd ;; 599185029Spjd 600185029Spjdwskbd) 601168404Spjd mkdev wskbd c %wsmux_chr% 1 602185029Spjd ;; 603185029Spjd 604185029Spjdwsmux*) 605185029Spjd unit=${i#wsmux} 606185029Spjd mkdev wsmux$unit c %wsmux_chr% $unit 607185029Spjd mkdev wsmuxctl$unit c %wsmux_chr% $(($unit + 128)) 200 608168404Spjd ;; 609185029Spjd 610185029Spjdxenevt) 611185029Spjd mkdev xenevt c %xenevt_chr% 0 612185029Spjd ;; 613185029Spjd 614185029Spjdxencons) 615185029Spjd mkdev xencons c %xencons_chr% 0 616185029Spjd ;; 617185029Spjd 618185029SpjdttyEstat) 619185029Spjd mkdev ttyEstat c %wsdisplay_chr% 254 620185029Spjd ;; 621185029Spjd 622185029SpjdttyEcfg) 623168404Spjd mkdev ttyEcfg c %wsdisplay_chr% 255 624168404Spjd ;; 625185029Spjd 626185029SpjdttyE*) 627185029Spjd unit=${i#ttyE} 628185029Spjd mkdev ttyE$unit c %wsdisplay_chr% $unit 629185029Spjd ;; 630185029Spjd 631185029Spjdwsmouse*) 632185029Spjd unit=${i#wsmouse} 633185029Spjd mkdev wsmouse$unit c %wsmouse_chr% $unit 634185029Spjd ;; 635185029Spjd 636185029Spjdwskbd*) 637185029Spjd unit=${i#wskbd} 638185029Spjd mkdev wskbd$unit c %wskbd_chr% $unit 639185029Spjd ;; 640185029Spjd 641185029Spjdfd) 642185029Spjd if $nofdesc; then 643185029Spjd makedir fd 755 644185029Spjd n=0 645185029Spjd while [ $n -lt 64 ] 646185029Spjd do 647185029Spjd mkdev fd/$n c %filedesc_chr% $n 666 648185029Spjd n=$(($n + 1)) 649185029Spjd done 650185029Spjd fi 651185029Spjd ;; 652185029Spjd 653185029Spjdwt*) 654185029Spjd case $i in 655185029Spjd wt*) name=wt; unit=${i#wt}; chr=%wt_chr%; blk=%wt_blk%;; 656185029Spjd esac 657185029Spjd for sub in $unit $(($unit+8)) $(($unit+16)) 658185029Spjd do 659185029Spjd mkdev $name$sub b $blk $(($sub + 0)) 660 $g_operator 660185029Spjd mkdev n$name$sub b $blk $(($sub + 4)) 660 $g_operator 661185029Spjd mkdev r$name$sub c $chr $(($sub + 0)) 660 $g_operator 662185029Spjd mkdev nr$name$sub c $chr $(($sub + 4)) 660 $g_operator 663185029Spjd done 664185029Spjd ;; 665185029Spjd 666185029Spjdmd*) 667185029Spjd makedisk_minimal md ${i#md} %md_blk% %md_chr% 668185029Spjd ;; 669168404Spjd 670185029Spjdfss*) 671168404Spjd case $i in 672185029Spjd fss*) name=fss; unit=${i#fss}; blk=%fss_blk%; chr=%fss_chr% 673185029Spjd esac 674185029Spjd mkdev $name$unit b $blk $unit 660 $g_operator 675185029Spjd mkdev r$name$unit c $chr $unit 660 $g_operator 676185029Spjd ;; 677168404Spjd 678185029Spjdss*) 679185029Spjd case $i in 680168404Spjd ss*) name=ss; unit=${i#ss}; chr=%ss_chr%;; 681185029Spjd esac 682168404Spjd mkdev $name$unit c $chr $(($unit * 16 + 0)) 640 $g_operator 683185029Spjd mkdev n$name$unit c $chr $(($unit * 16 + 1)) 640 $g_operator 684185029Spjd mkdev en$name$unit c $chr $(($unit * 16 + 3)) 640 $g_operator 685185029Spjd ;; 686185029Spjd 687185029Spjdccd*|cgd*|raid*|vnd*) 688185029Spjd case $i in 689185029Spjd ccd*) name=ccd; unit=${i#ccd}; blk=%ccd_blk%; chr=%ccd_chr%;; 690185029Spjd cgd*) name=cgd; unit=${i#cgd}; blk=%cgd_blk%; chr=%cgd_chr%;; 691185029Spjd raid*) name=raid; unit=${i#raid}; blk=%raid_blk%; chr=%raid_chr%;; 692185029Spjd vnd*) name=vnd; unit=${i#vnd}; blk=%vnd_blk%; chr=%vnd_chr%;; 693185029Spjd esac 694185029Spjd %MKDISK% $name $unit $blk $chr 695185029Spjd ;; 696185029Spjd 697185029Spjdsd*) 698168404Spjd name=sd; unit=${i#sd}; blk=%sd_blk%; chr=%sd_chr% 699168404Spjd %MKDISK% $name $unit $blk $chr 700168404Spjd ;; 701168404Spjd 702168404Spjdwd*) 703168404Spjd name=wd; unit=${i#wd}; blk=%wd_blk%; chr=%wd_chr% 704185029Spjd %MKDISK% $name $unit $blk $chr 705185029Spjd ;; 706185029Spjd 707185029Spjdfd*) 708168404Spjd name=fd; unit=${i#fd}; blk=%fd_blk%; chr=%fd_chr% 709168404Spjd %MKDISK% $name $unit $blk $chr 710168404Spjd ;; 711185029Spjd 712185029Spjdld*) 713185029Spjd name=ld; unit=${i#ld}; blk=%ld_blk%; chr=%ld_chr% 714185029Spjd %MKDISK% $name $unit $blk $chr 715185029Spjd ;; 716185029Spjd 717185029Spjded*) 718185029Spjd name=ed; unit=${i#ed}; blk=%ed_blk%; chr=%ed_chr% 719185029Spjd %MKDISK% $name $unit $blk $chr 720185029Spjd ;; 721185029Spjd 722185029Spjdofdisk*) 723185029Spjd name=ofdisk; unit=${i#ofdisk}; blk=%ofdisk_blk%; chr=%ofdisk_chr% 724185029Spjd %MKDISK% $name $unit $blk $chr 725185029Spjd ;; 726185029Spjd 727168404Spjdxbd*) 728168404Spjd name=xbd; unit=${i#xbd}; blk=%xbd_blk%; chr=%xbd_chr% 729168404Spjd %MKDISK% $name $unit $blk $chr 730168404Spjd ;; 731168404Spjd 732168404SpjdttyCY*) 733185029Spjd name=tyCY; chr=%cy_chr%; off=32 734185029Spjd unit=${i#t${name}} 735185029Spjd minor=$(($unit * $off)) 736168404Spjd eminor=$(($minor + $off)) 737168404Spjd while [ $minor -lt $eminor ] 738168404Spjd do 739168404Spjd # nminor=$(zeropad 3 $minor) 740168404Spjd nminor=000$minor 741168404Spjd nminor=${nminor#${nminor%???}} 742168404Spjd mkdev t$name$nminor c $chr $(($minor + $dialin )) "" "" $u_uucp 743168404Spjd mkdev d$name$nminor c $chr $(($minor + $dialout)) "" "" $u_uucp 744168404Spjd minor=$(($minor + 1)) 745168404Spjd done 746168404Spjd ;; 747185029Spjd 748185029SpjdttyCZ*) 749185029Spjd name=tyCZ; chr=%cz_chr%; off=64 750185029Spjd unit=${i#t${name}} 751185029Spjd minor=$(($unit * $off)) 752185029Spjd eminor=$(($minor + $off)) 753185029Spjd while [ $minor -lt $eminor ] 754185029Spjd do 755185029Spjd # nminor=$(zeropad 4 $minor) 756168404Spjd nminor=0000$minor 757168404Spjd nminor=${nminor#${nminor%????}} 758168404Spjd mkdev t$name$nminor c $chr $(($minor + $dialin )) "" "" $u_uucp 759168404Spjd mkdev d$name$nminor c $chr $(($minor + $dialout)) "" "" $u_uucp 760168404Spjd minor=$(($minor + 1)) 761168404Spjd done 762168404Spjd ;; 763168404Spjd 764168404Spjd 765168404Spjdtty[0-9]|tty0[0-9]) 766185029Spjd # some archs have built-in zstty (major %zstty_chr%) instead 767168404Spjd # of NS16550; create ttyZ* and hardlink as [dt]ty0*; this 768168404Spjd # needs to be before com entry, for archs which have both 769168404Spjd unit=${i#tty} 770168404Spjd unit=$(($unit + 0)) 771168404Spjd makedev ttyZ${unit} 772168404Spjd lndev ttyZ$unit tty0${unit} 773168404Spjd lndev dtyZ$unit dty0${unit} 774168404Spjd ;; 775168404Spjd 776168404Spjdtty0*|tty1*|tty[0-9]) 777168404Spjd unit=${i#tty} 778168404Spjd # ounit=$(zeropad 2 $unit) 779168404Spjd ounit=00$unit 780168404Spjd ounit=${ounit#${ounit%??}} 781168404Spjd mkdev tty$ounit c %com_chr% $(($unit + $dialin )) "" "" $u_uucp 782168404Spjd mkdev dty$ounit c %com_chr% $(($unit + $dialout)) "" "" $u_uucp 783168404Spjd ;; 784168404Spjd 785168404SpjdttyC*) 786168404Spjd # some archs call com_chr ttyC traditionally 787168404Spjd unit=${i#ttyC}; name=ttyC; dname=dtyC; chr=%com_chr% 788168404Spjd mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 789168404Spjd mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 790185029Spjd ;; 791168404Spjd 792185029Spjdttyh*) 793168404Spjd unit=${i#ttyh}; name=ttyh; dname=dtyh; chr=%sabtty_chr% 794168404Spjd mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 795168404Spjd mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 796168404Spjd ;; 797168404Spjd 798168404SpjdttyTX*) 799168404Spjd unit=${i#ttyTX}; name=ttyTX0; dname=dtyTX0; chr=%txcom_chr% 800168404Spjd mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 801168404Spjd mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 802168404Spjd ;; 803168404Spjd 804168404SpjdttyZ*) 805168404Spjd unit=${i#ttyZ}; name=ttyZ; dname=dtyZ; chr=%zstty_chr% 806168404Spjd mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 807168404Spjd mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 808168404Spjd ;; 809168404Spjd 810168404Spjdopty) 811168404Spjd for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f 812168404Spjd do 813168404Spjd case $j in 814168404Spjd [0-9]) jn=$j ;; 815168404Spjd a) jn=10 ;; 816168404Spjd b) jn=11 ;; 817168404Spjd c) jn=12 ;; 818168404Spjd d) jn=13 ;; 819168404Spjd e) jn=14 ;; 820168404Spjd f) jn=15 ;; 821168404Spjd esac 822168404Spjd mkdev ttyp$j c %pts_chr% $jn 666 823168404Spjd mkdev ptyp$j c %ptc_chr% $jn 666 824168404Spjd done 825168404Spjd ;; 826168404Spjd 827168404Spjdpty*) 828168404Spjd class=${i#pty} 829168404Spjd d1="p q r s t u v w x y z P Q R S T" 830168404Spjd if [ "$class" -ge 64 ] 831168404Spjd then 832168404Spjd warn "$i: pty unit must be between 0 and 63" 833168404Spjd continue 834168404Spjd elif [ "$class" -lt 16 ] 835168404Spjd then 836168404Spjd offset=0 837168404Spjd mult=0 838168404Spjd d2="0 1 2 3 4 5 6 7 8 9 a b c d e f" 839168404Spjd else 840168404Spjd class=$(($class - 16)) 841168404Spjd offset=256 842168404Spjd mult=2 843168404Spjd d2="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" 844168404Spjd fi 845168404Spjd start=$(($class * 16)) 846168404Spjd set -- $d2 847168404Spjd nt=$# 848168404Spjd s1=$(($start / $nt)) 849168404Spjd set -- $d1 850168404Spjd shift $s1 851168404Spjd t1=$1 852168404Spjd if [ "$t1" = v ]; then 853168404Spjd warn "$i: pty unit conflicts with console ttyv0 device" 854168404Spjd continue 855168404Spjd fi 856168404Spjd s2=$(($start % ($nt - $s1 * $mult))) 857168404Spjd set -- $d2 858168404Spjd shift $s2 859168404Spjd t2=$1 860168404Spjd unit=$(($start + $offset - $s1 * $mult)) 861168404Spjd end=$(($unit + 16)) 862168404Spjd while [ "$unit" -lt "$end" ] 863168404Spjd do 864168404Spjd mkdev tty$t1$t2 c %pts_chr% $unit 666 865168404Spjd mkdev pty$t1$t2 c %ptc_chr% $unit 666 866168404Spjd shift 867168404Spjd t2=$1 868168404Spjd if [ -z "$t2" ] 869168404Spjd then 870168404Spjd break 871168404Spjd fi 872168404Spjd unit=$(($unit + 1)) 873168404Spjd done 874168404Spjd ;; 875168404Spjd 876168404Spjdstic*) 877168404Spjd unit=${i#stic} 878168404Spjd mkdev stic$unit c %stic_chr% $unit 879168404Spjd ;; 880168404Spjd 881168404Spjdst*) 882168404Spjd case $i in 883168404Spjd st*) name=st; unit=${i#st}; chr=%st_chr%; blk=%st_blk%;; 884168404Spjd esac 885168404Spjd mkdev $name$unit b $blk $(($unit * 16 + 0)) 660 $g_operator 886168404Spjd mkdev n$name$unit b $blk $(($unit * 16 + 1)) 660 $g_operator 887168404Spjd mkdev e$name$unit b $blk $(($unit * 16 + 2)) 660 $g_operator 888168404Spjd mkdev en$name$unit b $blk $(($unit * 16 + 3)) 660 $g_operator 889168404Spjd mkdev r$name$unit c $chr $(($unit * 16 + 0)) 660 $g_operator 890168404Spjd mkdev nr$name$unit c $chr $(($unit * 16 + 1)) 660 $g_operator 891168404Spjd mkdev er$name$unit c $chr $(($unit * 16 + 2)) 660 $g_operator 892185029Spjd mkdev enr$name$unit c $chr $(($unit * 16 + 3)) 660 $g_operator 893185029Spjd ;; 894168404Spjd 895168404Spjdses*|ch*|uk*) 896168404Spjd case $i in 897168404Spjd ch*) name=ch; unit=${i#ch}; chr=%ch_chr%;; 898168404Spjd uk*) name=uk; unit=${i#uk}; chr=%uk_chr%;; 899168404Spjd ses*) name=ses; unit=${i#ses}; chr=%ses_chr%;; 900168404Spjd esac 901168404Spjd mkdev $name$unit c $chr $unit 640 $g_operator 902168404Spjd ;; 903168404Spjd 904168404Spjdcd*) 905168404Spjd makedisk_minimal cd ${i#cd} %cd_blk% %cd_chr% % 906168404Spjd ;; 907168404Spjd 908168404Spjdmcd*) 909168404Spjd makedisk_minimal mcd ${i#mcd} %mcd_blk% %mcd_chr% 910168404Spjd ;; 911168404Spjd 912168404Spjdgdrom*) 913168404Spjd makedisk_minimal gdrom ${i#gdrom} %gdrom_blk% %gdrom_chr% 914168404Spjd ;; 915168404Spjd 916168404Spjdlpt*|lpa*) 917168404Spjd case $i in 918168404Spjd lpt*) name=lpt; unit=${i#lpt}; chr=%lpt_chr%; flags=0;; 919168404Spjd lpa*) name=lpa; unit=${i#lpa}; chr=%lpt_chr%; flags=128;; 920168404Spjd esac 921168404Spjd mkdev $name$unit c $chr $(($unit + $flags)) 922168404Spjd mkdev lpt${unit}ctl c $chr $(($unit + 256)) 923168404Spjd ;; 924168404Spjd 925168404Spjdbpf) 926168404Spjd mkdev bpf c %bpf_chr% 0 927168404Spjd lndev bpf bpf0 928168404Spjd ;; 929168404Spjd 930168404Spjdtun*) 931168404Spjd unit=${i#tun} 932168404Spjd mkdev tun$unit c %tun_chr% $unit 933168404Spjd ;; 934168404Spjd 935168404Spjdjoy*) 936168404Spjd unit=${i#joy} 937168404Spjd mkdev joy$unit c %joy_chr% $unit 938168404Spjd ;; 939168404Spjd 940168404Spjdipl) 941168404Spjd mkdev ipl c %ipl_chr% 0 942168404Spjd mkdev ipnat c %ipl_chr% 1 943168404Spjd mkdev ipstate c %ipl_chr% 2 944168404Spjd mkdev ipauth c %ipl_chr% 3 945168404Spjd ;; 946168404Spjd 947168404Spjdpf) 948168404Spjd mkdev pf c %pf_chr% 0 949168404Spjd ;; 950168404Spjd 951168404Spjdcrypto) 952168404Spjd mkdev crypto c %crypto_chr% 0 666 953168404Spjd ;; 954168404Spjd 955168404Spjdspeaker) 956168404Spjd mkdev speaker c %spkr_chr% 0 957168404Spjd ;; 958168404Spjd 959168404Spjdlkm) 960168404Spjd mkdev lkm c %lkm_chr% 0 640 $g_kmem 961168404Spjd ;; 962168404Spjd 963168404Spjdaudio*) 964168404Spjd unit=${i#audio} 965168404Spjd audio=audio$unit 966168404Spjd sound=sound$unit 967168404Spjd mixer=mixer$unit 968168404Spjd audioctl=audioctl$unit 969168404Spjd : ${unit:-0} 970168404Spjd mkdev $sound c %audio_chr% $(($unit + 0)) 666 971168404Spjd mkdev $audio c %audio_chr% $(($unit + 128)) 666 972168404Spjd mkdev $mixer c %audio_chr% $(($unit + 16)) 666 973168404Spjd mkdev $audioctl c %audio_chr% $(($unit + 192)) 666 974168404Spjd ;; 975168404Spjd 976168404Spjdgpio*) 977168404Spjd unit=${i#gpio} 978168404Spjd mkdev gpio$unit c %gpio_chr% $unit 644 979168404Spjd ;; 980168404Spjd 981168404Spjdrmidi*) 982168404Spjd unit=${i#rmidi} 983168404Spjd mkdev rmidi$unit c %midi_chr% $unit 666 984168404Spjd ;; 985168404Spjd 986168404Spjdmusic*) 987168404Spjd unit=${i#music} 988168404Spjd : ${unit:-0} 989185029Spjd mkdev music$unit c %sequencer_chr% $(($unit + 0)) 666 990168404Spjd mkdev sequencer$unit c %sequencer_chr% $(($unit + 128)) 666 991168404Spjd ;; 992168404Spjd 993168404Spjdradio*) 994168404Spjd unit=${i#radio} 995168404Spjd : ${unit:-0} 996168404Spjd mkdev radio$unit c %radio_chr% $unit 666 997168404Spjd ;; 998185029Spjd 999168404Spjdapm) 1000168404Spjd mkdev apm c %apm_chr% 0 644 1001168404Spjd mkdev apmctl c %apm_chr% 8 644 1002168404Spjd ;; 1003168404Spjd 1004168404Spjdapm) 1005168404Spjd # hpcmips uses `apmdev_chr' instead of `apm_chr' 1006168404Spjd mkdev apm c %apmdev_chr% 0 644 1007168404Spjd mkdev apmctl c %apmdev_chr% 8 644 1008168404Spjd ;; 1009168404Spjd 1010168404Spjdsatlink*) 1011168404Spjd unit=${i#satlink} 1012168404Spjd mkdev satlink$unit c %satlink_chr% $unit 444 1013185029Spjd ;; 1014168404Spjd 1015168404Spjdrandom) 1016168404Spjd mkdev random c %rnd_chr% 0 444 1017168404Spjd mkdev urandom c %rnd_chr% 1 644 1018168404Spjd ;; 1019168404Spjd 1020168404Spjdcfs*) 1021168404Spjd unit=${i#cfs} 1022168404Spjd mkdev cfs$unit c %vcoda_chr% $unit 1023168404Spjd ;; 1024168404Spjd 1025168404Spjdsysmon) 1026168404Spjd mkdev sysmon c %sysmon_chr% 0 644 1027168404Spjd mkdev watchdog c %sysmon_chr% 1 644 1028168404Spjd mkdev power c %sysmon_chr% 2 640 1029168404Spjd ;; 1030168404Spjd 1031168404Spjdscsibus*) 1032168404Spjd unit=${i#scsibus} 1033168404Spjd mkdev scsibus$unit c %scsibus_chr% $unit 644 1034168404Spjd ;; 1035168404Spjd 1036168404Spjdbktr) 1037168404Spjd makedev bktr0 bktr1 1038168404Spjd lndev bktr0 bktr 1039168404Spjd lndev tuner0 tuner 1040168404Spjd lndev vbi0 vbi 1041168404Spjd ;; 1042168404Spjd 1043168404Spjdbktr*) 1044168404Spjd unit=${i#bktr} 1045168404Spjd mkdev bktr$unit c %bktr_chr% $(($unit + 0)) 444 1046168404Spjd mkdev tuner$unit c %bktr_chr% $(($unit + 16)) 444 1047168404Spjd mkdev vbi$unit c %bktr_chr% $(($unit + 32)) 444 1048168404Spjd ;; 1049185029Spjd 1050168404Spjdiop*) 1051168404Spjd unit=${i#iop} 1052168404Spjd mkdev iop$unit c %iop_chr% $unit 1053168404Spjd ;; 1054168404Spjd 1055168404Spjdmlx*) 1056168404Spjd unit=${i#mlx} 1057168404Spjd mkdev mlx$unit c %mlx_chr% $unit 1058168404Spjd ;; 1059168404Spjd 1060168404Spjdmly*) 1061168404Spjd unit=${i#mly} 1062168404Spjd mkdev mly$unit c %mly_chr% $unit 1063168404Spjd ;; 1064168404Spjd 1065168404Spjdtwe*) 1066168404Spjd unit=${i#twe} 1067168404Spjd mkdev twe$unit c %twe_chr% $unit 1068168404Spjd ;; 1069168404Spjd 1070168404Spjdicp*) 1071168404Spjd unit=${i#icp} 1072168404Spjd mkdev icp$unit c %icp_chr% $unit 1073168404Spjd ;; 1074168404Spjd 1075168404Spjdagp*) 1076168404Spjd unit=${i#agp} 1077168404Spjd mkdev agp$unit c %agp_chr% $unit 644 1078191900Skmacy if [ "$unit" = "0" ]; then 1079168404Spjd lndev agp$unit agpgart 1080168404Spjd fi 1081168404Spjd ;; 1082168404Spjd 1083185029Spjdpci*) 1084168404Spjd unit=${i#pci} 1085168404Spjd mkdev pci$unit c %pci_chr% $unit 644 1086168404Spjd ;; 1087168404Spjd 1088168404Spjddpti*) 1089168404Spjd unit=${i#dpti} 1090168404Spjd mkdev dpti$unit c %dpti_chr% $unit 1091168404Spjd ;; 1092168404Spjd 1093185029Spjddpt*) 1094168404Spjd unit=${i#dpt} 1095168404Spjd mkdev dpt$unit c %dpt_chr% $unit 1096168404Spjd ;; 1097168404Spjd 1098168404Spjdaltq) 1099168404Spjd makedir altq 755 1100168404Spjd unit=0 1101168404Spjd for dev in altq cbq wfq afm fifoq red rio localq hfsc cdnr blue priq 1102168404Spjd do 1103168404Spjd mkdev altq/$dev c %altq_chr% $unit 644 1104168404Spjd unit=$(($unit + 1)) 1105168404Spjd done 1106168404Spjd ;; 1107168404Spjd 1108168404Spjdisdn) 1109168404Spjd mkdev isdn c %isdn_chr% 0 1110168404Spjd ;; 1111168404Spjd 1112168404Spjdisdnctl) 1113168404Spjd mkdev isdnctl c %isdnctl_chr% 0 1114168404Spjd ;; 1115168404Spjd 1116168404Spjdisdnbchan*) 1117168404Spjd unit=${i#isdnbchan} 1118168404Spjd mkdev isdnbchan$unit c %isdnbchan_chr% $unit 1119168404Spjd ;; 1120168404Spjd 1121168404Spjdisdnteld*) 1122168404Spjd unit=${i#isdnteld} 1123168404Spjd mkdev isdnteld$unit c %isdntel_chr% $(($unit + 64)) 1124168404Spjd ;; 1125168404Spjd 1126168404Spjdisdntel*) 1127168404Spjd unit=${i#isdntel} 1128168404Spjd mkdev isdntel$unit c %isdntel_chr% $unit 1129168404Spjd ;; 1130168404Spjd 1131168404Spjdisdntrc*) 1132168404Spjd unit=${i#isdntrc} 1133168404Spjd mkdev isdntrc$unit c %isdntrc_chr% $unit 1134168404Spjd ;; 1135168404Spjd 1136168404Spjdvmegen) 1137168404Spjd makedev vmegen0 vmegen1 vmegen2 vmegen3 1138168404Spjd ;; 1139168404Spjd 1140168404Spjdvmegen*) 1141168404Spjd unit=${i#vmegen} 1142168404Spjd mkdev vmegen$unit c %vmegeneric_chr% $(($unit * 16 + 0)) 1143168404Spjd ;; 1144168404Spjd 1145168404Spjdwsfont) 1146168404Spjd mkdev wsfont c %wsfont_chr% 0 1147168404Spjd ;; 1148168404Spjd 1149168404Spjdcir*) 1150168404Spjd unit=${i#cir} 1151168404Spjd mkdev cir$unit c %cir_chr% $unit 666 1152185029Spjd ;; 1153168404Spjd 1154168404Spjdirframe*) 1155168404Spjd unit=${i#irframe} 1156168404Spjd mkdev irframe$unit c %irframe_chr% $unit 1157168404Spjd ;; 1158168404Spjd 1159168404Spjdfcom*) 1160168404Spjd unit=${i#fcom} 1161168404Spjd mkdev fcom$unit c %fcom_chr% $unit "" "" $u_uucp 1162168404Spjd ;; 1163168404Spjd 1164185029Spjdopenfirm) 1165168404Spjd mkdev openfirm c %openfirm_chr% 0 444 1166168404Spjd ;; 1167168404Spjd 1168168404Spjdnvram) 1169168404Spjd mkdev nvram c %nvram_chr% 0 644 1170168404Spjd ;; 1171168404Spjd 1172168404Spjdrtc) 1173168404Spjd mkdev rtc c %rtc_chr% 0 644 1174168404Spjd ;; 1175168404Spjd 1176168404Spjdclockctl) 1177168404Spjd mkdev clockctl c %clockctl_chr% 0 660 $g_ntpd 1178168404Spjd ;; 1179168404Spjd 1180168404Spjdnsmb) 1181168404Spjd makedev nsmb0 nsmb1 nsmb2 nsmb3 1182168404Spjd ;; 1183168404Spjd 1184168404Spjdnsmb*) 1185168404Spjd unit=${i#nsmb} 1186168404Spjd mkdev nsmb$unit c %nsmb_chr% $unit 644 1187168404Spjd ;; 1188168404Spjd 1189168404Spjdsystrace) 1190168404Spjd mkdev systrace c %systrace_chr% 0 644 1191168404Spjd ;; 1192168404Spjd 1193168404Spjdkttcp) 1194168404Spjd mkdev kttcp c %kttcp_chr% 0 1195168404Spjd ;; 1196168404Spjd 1197168404Spjddmoverio) 1198185029Spjd mkdev dmoverio c %dmoverio_chr% 0 644 1199168404Spjd ;; 1200185029Spjd 1201168404Spjdveriexec) 1202168404Spjd mkdev veriexec c %veriexec_chr% 0 600 1203168404Spjd ;; 1204168404Spjd 1205168404Spjdttyv*) 1206168404Spjd unit=${i#ttyv} 1207168404Spjd mkdev ttyv$unit c %pc_chr% $unit 1208168404Spjd ;; 1209168404Spjd 1210168404Spjd# arm, acorn32 1211168404Spjdttyv*) 1212168404Spjd unit=${i#ttyv} 1213168404Spjd mkdev ttyv$unit c %physcon_chr% $unit 1214168404Spjd ;; 1215168404Spjd 1216168404Spjdarcpp*) 1217168404Spjd unit=${i#arcpp} 1218168404Spjd mkdev arcpp$unit c %arcpp_chr% $unit 1219168404Spjd ;; 1220168404Spjd 1221168404Spjdpar*) 1222168404Spjd unit=${i#par} 1223168404Spjd case $unit in 1224168404Spjd 0) 1225168404Spjd mkdev par$unit c %par_chr% $unit 1226168404Spjd ;; 1227168404Spjd *) 1228168404Spjd warn "bad unit for par in: $i" 1229168404Spjd ;; 1230168404Spjd esac 1231168404Spjd ;; 1232168404Spjd 1233168404Spjdite*|ttye*) 1234168404Spjd case $i in 1235168404Spjd ite*) unit=${i#ite};; 1236168404Spjd ttye*) unit=${i#ttye};; 1237168404Spjd esac 1238168404Spjd mkdev ttye$unit c %ite_chr% $unit 1239168404Spjd ;; 1240168404Spjd 1241168404Spjdpms*) 1242168404Spjd unit=${i#pms} 1243168404Spjd mkdev pms$unit c %opms_chr% $unit 1244168404Spjd ;; 1245168404Spjd 1246168404Spjdqms*) 1247168404Spjd unit=${i#qms} 1248168404Spjd mkdev qms$unit c %qms_chr% $unit 1249168404Spjd ;; 1250168404Spjd 1251168404Spjdlms*) 1252168404Spjd unit=${i#lms} 1253168404Spjd mkdev lms$unit c %lms_chr% $unit 1254168404Spjd ;; 1255168404Spjd 1256168404Spjdmms*) 1257168404Spjd unit=${i#mms} 1258168404Spjd mkdev mms$unit c %mms_chr% $unit 1259168404Spjd ;; 1260168404Spjd 1261168404Spjdmouse-*) 1262168404Spjd case $i in 1263168404Spjd mouse-pms*) name=pms ;; 1264168404Spjd mouse-qms*) name=qms ;; 1265168404Spjd esac 1266168404Spjd unit=${i#mouse-${name}} 1267168404Spjd lndev $name$unit mouse 1268168404Spjd ;; 1269168404Spjd 1270168404Spjdkbd) 1271168404Spjd mkdev kbd c %kbd_chr% 0 1272168404Spjd ;; 1273168404Spjd 1274168404Spjdkbdctl) 1275168404Spjd mkdev kbdctl c %kbd_chr% 1 1276168404Spjd ;; 1277168404Spjd 1278168404Spjdvidcconsole0) 1279168404Spjd mkdev vidcconsole0 c %vidcconsole_chr% 0 640 1280168404Spjd ;; 1281168404Spjd 1282168404Spjdview*) 1283168404Spjd unit=${i#view} 1284168404Spjd mkdev view$unit c %view_chr% $unit 666 1285168404Spjd ;; 1286168404Spjd 1287168404Spjdmouse*) 1288168404Spjd unit=${i#mouse} 1289168404Spjd case $unit in 1290168404Spjd 0|1) 1291168404Spjd mkdev mouse$unit c %ms_chr% $unit 666 1292168404Spjd if [ $unit = 0 ]; then 1293168404Spjd lndev mouse$unit mouse 1294168404Spjd fi 1295168404Spjd ;; 1296168404Spjd *) 1297168404Spjd warn "bad unit for mouse in: $i" 1298168404Spjd ;; 1299168404Spjd esac 1300168404Spjd ;; 1301168404Spjd 1302168404Spjdpanel) 1303168404Spjd mkdev panel0 c %panel_chr% 0 660 1304168404Spjd ;; 1305168404Spjd 1306168404Spjdtslcd) 1307168404Spjd mkdev tslcd0 c %tslcd_chr% 0 660 1308168404Spjd ;; 1309168404Spjd 1310168404Spjdipty) 1311168404Spjd mkdev ttyp0 c %pts_chr% 0 666 1312168404Spjd mkdev ttyp1 c %pts_chr% 1 666 1313168404Spjd mkdev ptyp0 c %ptc_chr% 0 666 1314168404Spjd mkdev ptyp1 c %ptc_chr% 1 666 1315168404Spjd ;; 1316168404Spjd 1317168404Spjdptm) 1318168404Spjd mkdev ptmx c %ptm_chr% 0 666 1319168404Spjd mkdev ptm c %ptm_chr% 1 666 1320168404Spjd ;; 1321168404Spjd 1322168404Spjdgrf*) 1323168404Spjd unit=${i#grf} 1324168404Spjd mkdev grf$unit c %grf_chr% $unit 666 1325168404Spjd ;; 1326168404Spjd 1327168404Spjdetvme) 1328168404Spjd mkdev etvme c %et_chr% 0 1329168404Spjd ;; 1330168404Spjd 1331168404Spjdleo*) 1332168404Spjd unit=${i#leo} 1333168404Spjd mkdev leo$unit c %leo_chr% $unit 1334168404Spjd ;; 1335168404Spjd 1336168404Spjdscif*) 1337168404Spjd unit=${i#scif} 1338168404Spjd mkdev scif$unit c %scif_chr% $unit "" "" $u_uucp 1339168404Spjd ;; 1340168404Spjd 1341168404Spjdsci*) 1342185029Spjd unit=${i#sci} 1343168404Spjd mkdev sci$unit c %sci_chr% $unit "" "" $u_uucp 1344185029Spjd ;; 1345185029Spjd 1346185029Spjdmaple*) 1347185029Spjd case $i in 1348185029Spjd mapleA*) name="mapleA"; unit=0;; 1349185029Spjd mapleB*) name="mapleB"; unit=1;; 1350168404Spjd mapleC*) name="mapleC"; unit=2;; 1351168404Spjd mapleD*) name="mapleD"; unit=3;; 1352168404Spjd esac 1353168404Spjd subunit=${i#$name} 1354168404Spjd mkdev $name$subunit c %maple_chr% $(($unit * 8 + 0$subunit)) 1355168404Spjd ;; 1356168404Spjd 1357168404Spjdmmem*) 1358168404Spjd unit=${i#mmem} 1359168404Spjd for pt in 0 # 1 2 3 4 ... 255 1360168404Spjd do 1361168404Spjd# mkdev mmem${unit}.${pt}a b %mmem_blk% $(($unit * 4096 + $pt * 16 + 0)) 640 $g_operator 1362168404Spjd mkdev mmem${unit}.${pt}c b %mmem_blk% $(($unit * 4096 + $pt * 16 + 2)) 640 $g_operator 1363168404Spjd# mkdev rmmem${unit}.${pt}a c %mmem_chr% $(($unit * 4096 + $pt * 16 + 0)) 640 $g_operator 1364168404Spjd mkdev rmmem${unit}.${pt}c c %mmem_chr% $(($unit * 4096 + $pt * 16 + 2)) 640 $g_operator 1365168404Spjd done 1366168404Spjd ;; 1367168404Spjd 1368185029Spjdmlcd*) 1369185029Spjd unit=${i#mlcd} 1370168404Spjd for pt in 0 # 1 2 3 4 ... 255 1371168404Spjd do 1372168404Spjd mkdev mlcd${unit}.${pt} c %mlcd_chr% $(($unit * 256 + $pt)) 640 $g_operator 1373168404Spjd done 1374168404Spjd ;; 1375185029Spjd 1376185029Spjdixpcom*) 1377185029Spjd unit=${i#ixpcom} 1378168404Spjd mkdev ixpcom$unit c %ixpcom_chr% $unit "" "" $u_uucp 1379168404Spjd ;; 1380168404Spjd 1381168404Spjdepcom*) 1382168404Spjd unit=${i#epcom} 1383168404Spjd mkdev epcom$unit c %epcom_chr% $unit "" "" $u_uucp 1384168404Spjd ;; 1385168404Spjd 1386168404Spjducbsnd) 1387168404Spjd mkdev ucbsnd c %ucbsnd_chr% 0 666 1388168404Spjd ;; 1389168404Spjd 1390168404Spjdadb) 1391168404Spjd mkdev adb c %aed_chr% 0 666 1392168404Spjd ;; 1393168404Spjd 1394168404Spjdasc*) 1395168404Spjd unit=${i#asc} 1396168404Spjd mkdev asc$unit c %asc_chr% $unit 666 1397168404Spjd ;; 1398168404Spjd 1399168404Spjdbwtwo*) 1400168404Spjd unit=${i#bwtwo} 1401168404Spjd mkdev bwtwo$unit c %bwtwo_chr% $unit 666 1402168404Spjd ;; 1403168404Spjd 1404168404Spjdcgtwo*) 1405168404Spjd unit=${i#cgtwo} 1406168404Spjd mkdev cgtwo$unit c %cgtwo_chr% $unit 666 1407168404Spjd ;; 1408168404Spjd 1409168404Spjdcgthree*) 1410168404Spjd unit=${i#cgthree} 1411168404Spjd mkdev cgthree$unit c %cgthree_chr% $unit 666 1412168404Spjd ;; 1413168404Spjd 1414168404Spjdcgfour*) 1415168404Spjd unit=${i#cgfour} 1416168404Spjd mkdev cgfour$unit c %cgfour_chr% $unit 666 1417168404Spjd ;; 1418168404Spjd 1419168404Spjdcgsix*) 1420168404Spjd unit=${i#cgsix} 1421168404Spjd mkdev cgsix$unit c %cgsix_chr% $unit 666 1422168404Spjd ;; 1423168404Spjd 1424168404Spjdcgeight*) 1425168404Spjd unit=${i#cgeight} 1426168404Spjd mkdev cgeight$unit c %cgeight_chr% $unit 666 1427168404Spjd ;; 1428168404Spjd 1429168404Spjdtcx*) 1430168404Spjd unit=${i#tcx} 1431168404Spjd mkdev tcx$unit c %tcx_chr% $unit 666 1432168404Spjd ;; 1433168404Spjd 1434168404Spjdxd*|xy*) 1435168404Spjd case $i in 1436200724Sdelphij xd*) name=xd; unit=${i#xd}; blk=%xd_blk%; chr=%xd_chr%;; 1437168404Spjd xy*) name=xy; unit=${i#xy}; blk=%xy_blk%; chr=%xy_chr%;; 1438168404Spjd esac 1439168404Spjd %MKDISK% $name $unit $blk $chr 1440168404Spjd ;; 1441168404Spjd 1442168404Spjdmagma*) 1443168404Spjd unit=${i#magma} 1444168404Spjd if [ 0$unit -gt 3 ]; then 1445168404Spjd warn "bad unit for $i: $unit" 1446168404Spjd break 1447168404Spjd fi 1448168404Spjd for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f 1449168404Spjd do 1450168404Spjd case $j in 1451168404Spjd [0-9]) jn=$j ;; 1452168404Spjd a) jn=10 ;; 1453168404Spjd b) jn=11 ;; 1454168404Spjd c) jn=12 ;; 1455168404Spjd d) jn=13 ;; 1456168404Spjd e) jn=14 ;; 1457168404Spjd f) jn=15 ;; 1458168404Spjd esac 1459168404Spjd mkdev tty$unit$j c %mtty_chr% $(($unit * 64 + $jn)) 1460168404Spjd done 1461168404Spjd mkdev bpp${unit}0 c %mbpp_chr% $(($unit * 64 + 0)) 1462168404Spjd mkdev bpp${unit}1 c %mbpp_chr% $(($unit * 64 + 1)) 1463168404Spjd ;; 1464168404Spjd 1465168404Spjdclcd*) 1466168404Spjd unit=${i#clcd} 1467168404Spjd if [ 0$unit -gt 7 ]; then 1468168404Spjd warn "bad unit for $i: $unit" 1469168404Spjd break 1470168404Spjd fi 1471168404Spjd for j in 0 1 2 3 4 5 6 7 1472168404Spjd do 1473168404Spjd mkdev ttyA$unit$j c %clcd_chr% $(($unit * 8 + $j + $dialin)) "" "" $u_uucp 1474168404Spjd mkdev dtyA$unit$j c %clcd_chr% $(($unit * 8 + $j + $dialout)) "" "" $u_uucp 1475168404Spjd done 1476168404Spjd ;; 1477168404Spjd 1478168404Spjdspif*) 1479168404Spjd unit=${i#spif} 1480168404Spjd if [ 0$unit -gt 3 ]; then 1481168404Spjd warn "bad unit for $i: $unit" 1482168404Spjd break 1483168404Spjd fi 1484168404Spjd for j in 0 1 2 3 4 5 6 7; do 1485185029Spjd mkdev ttyS$unit$j c 102 $(($unit * 64 + $j)) "" "" $u_uucp 1486168404Spjd done 1487168404Spjd mkdev bppS${unit}0 c 103 $(($unit * 64 + 0)) 1488168404Spjd mkdev bppS${unit}1 c 103 $(($unit * 64 + 1)) 1489168404Spjd ;; 1490168404Spjd 1491168404Spjdbpp*) 1492168404Spjd unit=${i#bpp} 1493168404Spjd mkdev bpp$unit c %bpp_chr% $(($unit + 0)) 1494168404Spjd ;; 1495168404Spjd 1496168404Spjdtctrl*) 1497168404Spjd unit=${i#tctrl} 1498168404Spjd mkdev tctrl$unit c %tctrl_chr% $unit 666 1499168404Spjd ;; 1500168404Spjd 1501168404Spjdbmd*) 1502168404Spjd unit=${i#bmd} 1503168404Spjd mkdev bmd${unit}a b %bmd_blk% $(($unit * 8 + 0)) 640 $g_operator 1504168404Spjd mkdev bmd${unit}c b %bmd_blk% $(($unit * 8 + 2)) 640 $g_operator 1505168404Spjd mkdev rbmd${unit}a c %bmd_chr% $(($unit * 8 + 0)) 640 $g_operator 1506168404Spjd mkdev rbmd${unit}c c %bmd_chr% $(($unit * 8 + 2)) 640 $g_operator 1507168404Spjd ;; 1508168404Spjd 1509168404Spjdsram) 1510168404Spjd mkdev sram c %sram_chr% 0 644 1511185029Spjd ;; 1512185029Spjd 1513185029Spjdpow*) 1514168404Spjd unit=${i#pow} 1515168404Spjd case $unit in 1516168404Spjd 0|1) 1517168404Spjd mkdev pow${unit} c %pow_chr% ${unit} 644 1518168404Spjd if [ $unit = 0 ]; then 1519168404Spjd lndev pow${unit} pow 1520168404Spjd fi 1521168404Spjd ;; 1522168404Spjd *) 1523168404Spjd warn "bad unit for pow in: $i" 1524168404Spjd ;; 1525168404Spjd esac 1526168404Spjd ;; 1527168404Spjd 1528168404SpjdttyS*) 1529168404Spjd unit=${i#ttyS} 1530168404Spjd mkdev ttyS$unit c %sacom_chr% $(($unit + $dialin )) "" "" $u_uucp 1531168404Spjd mkdev dtyS$unit c %sacom_chr% $(($unit + $dialout)) "" "" $u_uucp 1532168404Spjd ;; 1533168404Spjd 1534168404Spjdatabus*) 1535168404Spjd unit=${i#atabus} 1536168404Spjd mkdev atabus$unit c %atabus_chr% $unit 644 1537168404Spjd ;; 1538168404Spjd 1539168404Spjddrvctl) 1540168404Spjd mkdev drvctl c %drvctl_chr% 0 644 1541168404Spjd ;; 1542168404Spjd 1543168404Spjdtap*) 1544168404Spjd unit=${i#tap} 1545168404Spjd case "$unit" in 1546168404Spjd [0-9]*) 1547168404Spjd mkdev tap${unit} c %tap_chr% ${unit} 600 1548168404Spjd ;; 1549168404Spjd *) 1550168404Spjd mkdev tap c %tap_chr% 0xfffff 600 1551168404Spjd ;; 1552168404Spjd esac 1553168404Spjd ;; 1554168404Spjd 1555168404Spjdfw*) 1556168404Spjd unit=${i#fw} 1557168404Spjd for j in 0 1 2 3 1558168404Spjd do 1559168404Spjd mkdev fw${unit}.${j} c %fw_chr% $((${unit} * 256 + ${j})) 660 ${g_operator} 1560168404Spjd mkdev fwmem${unit}.${j} c %fw_chr% $((65536 + ${unit} * 256 + ${j})) 660 ${g_operator} 1561168404Spjd done 1562168404Spjd ;; 1563168404Spjd 1564168404Spjdmidevend) 1565168404Spjd%MI_DEVICES_END% 1566168404Spjdlocal) 1567168404Spjd if [ -f "$0.local" ]; then 1568168404Spjd umask 0 1569168404Spjd sh $0.local all 1570168404Spjd umask 077 1571168404Spjd fi 1572168404Spjd ;; 1573168404Spjd 1574168404Spjd*) 1575168404Spjd warn "$i: unknown device" 1576168404Spjd ;; 1577168404Spjd 1578168404Spjdesac 1579168404Spjddone 1580168404Spjd 1581168404Spjd} 1582168404Spjd 1583168404Spjd 1584168404Spjd# three variants of disk partitions - max 8, max 16, max 16 with highpartoffset 1585168404Spjd# hack; only the one used by port is retained in final MAKEDEV script 1586168404Spjd# routine is called as: 1587168404Spjd# makedisk name unit blk chr 1588185029Spjdmakedisk_p8() 1589185029Spjd{ 1590168404Spjd name="$1"; unit="$2"; blk="$3"; chr="$4" 1591168404Spjd 1592168404Spjd mkdev ${name}${unit}a b $blk $(($unit * 8 + 0)) 640 $g_operator 1593185029Spjd mkdev ${name}${unit}b b $blk $(($unit * 8 + 1)) 640 $g_operator 1594168404Spjd mkdev ${name}${unit}c b $blk $(($unit * 8 + 2)) 640 $g_operator 1595168404Spjd mkdev ${name}${unit}d b $blk $(($unit * 8 + 3)) 640 $g_operator 1596168404Spjd mkdev ${name}${unit}e b $blk $(($unit * 8 + 4)) 640 $g_operator 1597168404Spjd mkdev ${name}${unit}f b $blk $(($unit * 8 + 5)) 640 $g_operator 1598168404Spjd mkdev ${name}${unit}g b $blk $(($unit * 8 + 6)) 640 $g_operator 1599168404Spjd mkdev ${name}${unit}h b $blk $(($unit * 8 + 7)) 640 $g_operator 1600168404Spjd mkdev r${name}${unit}a c $chr $(($unit * 8 + 0)) 640 $g_operator 1601168404Spjd mkdev r${name}${unit}b c $chr $(($unit * 8 + 1)) 640 $g_operator 1602168404Spjd mkdev r${name}${unit}c c $chr $(($unit * 8 + 2)) 640 $g_operator 1603168404Spjd mkdev r${name}${unit}d c $chr $(($unit * 8 + 3)) 640 $g_operator 1604168404Spjd mkdev r${name}${unit}e c $chr $(($unit * 8 + 4)) 640 $g_operator 1605168404Spjd mkdev r${name}${unit}f c $chr $(($unit * 8 + 5)) 640 $g_operator 1606168404Spjd mkdev r${name}${unit}g c $chr $(($unit * 8 + 6)) 640 $g_operator 1607168404Spjd mkdev r${name}${unit}h c $chr $(($unit * 8 + 7)) 640 $g_operator 1608168404Spjd} 1609168404Spjd 1610168404Spjdmakedisk_p16() 1611168404Spjd{ 1612168404Spjd name="$1"; unit="$2"; blk="$3"; chr="$4" 1613168404Spjd 1614168404Spjd mkdev ${name}${unit}a b $blk $(($unit * 16 + 0)) 640 $g_operator 1615168404Spjd mkdev ${name}${unit}b b $blk $(($unit * 16 + 1)) 640 $g_operator 1616185029Spjd mkdev ${name}${unit}c b $blk $(($unit * 16 + 2)) 640 $g_operator 1617185029Spjd mkdev ${name}${unit}d b $blk $(($unit * 16 + 3)) 640 $g_operator 1618168404Spjd mkdev ${name}${unit}e b $blk $(($unit * 16 + 4)) 640 $g_operator 1619168404Spjd mkdev ${name}${unit}f b $blk $(($unit * 16 + 5)) 640 $g_operator 1620168404Spjd mkdev ${name}${unit}g b $blk $(($unit * 16 + 6)) 640 $g_operator 1621168404Spjd mkdev ${name}${unit}h b $blk $(($unit * 16 + 7)) 640 $g_operator 1622168404Spjd mkdev ${name}${unit}i b $blk $(($unit * 16 + 8)) 640 $g_operator 1623168404Spjd mkdev ${name}${unit}j b $blk $(($unit * 16 + 9)) 640 $g_operator 1624168404Spjd mkdev ${name}${unit}k b $blk $(($unit * 16 + 10)) 640 $g_operator 1625168404Spjd mkdev ${name}${unit}l b $blk $(($unit * 16 + 11)) 640 $g_operator 1626168404Spjd mkdev ${name}${unit}m b $blk $(($unit * 16 + 12)) 640 $g_operator 1627168404Spjd mkdev ${name}${unit}n b $blk $(($unit * 16 + 13)) 640 $g_operator 1628168404Spjd mkdev ${name}${unit}o b $blk $(($unit * 16 + 14)) 640 $g_operator 1629168404Spjd mkdev ${name}${unit}p b $blk $(($unit * 16 + 15)) 640 $g_operator 1630168404Spjd mkdev r${name}${unit}a c $chr $(($unit * 16 + 0)) 640 $g_operator 1631168404Spjd mkdev r${name}${unit}b c $chr $(($unit * 16 + 1)) 640 $g_operator 1632168404Spjd mkdev r${name}${unit}c c $chr $(($unit * 16 + 2)) 640 $g_operator 1633168404Spjd mkdev r${name}${unit}d c $chr $(($unit * 16 + 3)) 640 $g_operator 1634168404Spjd mkdev r${name}${unit}e c $chr $(($unit * 16 + 4)) 640 $g_operator 1635168404Spjd mkdev r${name}${unit}f c $chr $(($unit * 16 + 5)) 640 $g_operator 1636168404Spjd mkdev r${name}${unit}g c $chr $(($unit * 16 + 6)) 640 $g_operator 1637185029Spjd mkdev r${name}${unit}h c $chr $(($unit * 16 + 7)) 640 $g_operator 1638185029Spjd mkdev r${name}${unit}i c $chr $(($unit * 16 + 8)) 640 $g_operator 1639185029Spjd mkdev r${name}${unit}j c $chr $(($unit * 16 + 9)) 640 $g_operator 1640168404Spjd mkdev r${name}${unit}k c $chr $(($unit * 16 + 10)) 640 $g_operator 1641168404Spjd mkdev r${name}${unit}l c $chr $(($unit * 16 + 11)) 640 $g_operator 1642168404Spjd mkdev r${name}${unit}m c $chr $(($unit * 16 + 12)) 640 $g_operator 1643168404Spjd mkdev r${name}${unit}n c $chr $(($unit * 16 + 13)) 640 $g_operator 1644168404Spjd mkdev r${name}${unit}o c $chr $(($unit * 16 + 14)) 640 $g_operator 1645168404Spjd mkdev r${name}${unit}p c $chr $(($unit * 16 + 15)) 640 $g_operator 1646168404Spjd} 1647168404Spjd 1648168404Spjdmakedisk_p16high() 1649168404Spjd{ 1650168404Spjd ho=524280 # offset for partition 9 to 16 1651168404Spjd name="$1"; unit="$2"; blk="$3"; chr="$4" 1652168404Spjd 1653168404Spjd mkdev ${name}${unit}a b $blk $(($unit * 8 + 0)) 640 $g_operator 1654168404Spjd mkdev ${name}${unit}b b $blk $(($unit * 8 + 1)) 640 $g_operator 1655168404Spjd mkdev ${name}${unit}c b $blk $(($unit * 8 + 2)) 640 $g_operator 1656185029Spjd mkdev ${name}${unit}d b $blk $(($unit * 8 + 3)) 640 $g_operator 1657185029Spjd mkdev ${name}${unit}e b $blk $(($unit * 8 + 4)) 640 $g_operator 1658168404Spjd mkdev ${name}${unit}f b $blk $(($unit * 8 + 5)) 640 $g_operator 1659168404Spjd mkdev ${name}${unit}g b $blk $(($unit * 8 + 6)) 640 $g_operator 1660168404Spjd mkdev ${name}${unit}h b $blk $(($unit * 8 + 7)) 640 $g_operator 1661168404Spjd mkdev ${name}${unit}i b $blk $(($unit * 8 + $ho + 8)) 640 $g_operator 1662168404Spjd mkdev ${name}${unit}j b $blk $(($unit * 8 + $ho + 9)) 640 $g_operator 1663200724Sdelphij mkdev ${name}${unit}k b $blk $(($unit * 8 + $ho + 10)) 640 $g_operator 1664168404Spjd mkdev ${name}${unit}l b $blk $(($unit * 8 + $ho + 11)) 640 $g_operator 1665168404Spjd mkdev ${name}${unit}m b $blk $(($unit * 8 + $ho + 12)) 640 $g_operator 1666168404Spjd mkdev ${name}${unit}n b $blk $(($unit * 8 + $ho + 13)) 640 $g_operator 1667168404Spjd mkdev ${name}${unit}o b $blk $(($unit * 8 + $ho + 14)) 640 $g_operator 1668168404Spjd mkdev ${name}${unit}p b $blk $(($unit * 8 + $ho + 15)) 640 $g_operator 1669168404Spjd mkdev r${name}${unit}a c $chr $(($unit * 8 + 0)) 640 $g_operator 1670168404Spjd mkdev r${name}${unit}b c $chr $(($unit * 8 + 1)) 640 $g_operator 1671185029Spjd mkdev r${name}${unit}c c $chr $(($unit * 8 + 2)) 640 $g_operator 1672168404Spjd mkdev r${name}${unit}d c $chr $(($unit * 8 + 3)) 640 $g_operator 1673168404Spjd mkdev r${name}${unit}e c $chr $(($unit * 8 + 4)) 640 $g_operator 1674168404Spjd mkdev r${name}${unit}f c $chr $(($unit * 8 + 5)) 640 $g_operator 1675168404Spjd mkdev r${name}${unit}g c $chr $(($unit * 8 + 6)) 640 $g_operator 1676168404Spjd mkdev r${name}${unit}h c $chr $(($unit * 8 + 7)) 640 $g_operator 1677168404Spjd mkdev r${name}${unit}i c $chr $(($unit * 8 + $ho + 8)) 640 $g_operator 1678168404Spjd mkdev r${name}${unit}j c $chr $(($unit * 8 + $ho + 9)) 640 $g_operator 1679168404Spjd mkdev r${name}${unit}k c $chr $(($unit * 8 + $ho + 10)) 640 $g_operator 1680168404Spjd mkdev r${name}${unit}l c $chr $(($unit * 8 + $ho + 11)) 640 $g_operator 1681168404Spjd mkdev r${name}${unit}m c $chr $(($unit * 8 + $ho + 12)) 640 $g_operator 1682168404Spjd mkdev r${name}${unit}n c $chr $(($unit * 8 + $ho + 13)) 640 $g_operator 1683174049Sjb mkdev r${name}${unit}o c $chr $(($unit * 8 + $ho + 14)) 640 $g_operator 1684168404Spjd mkdev r${name}${unit}p c $chr $(($unit * 8 + $ho + 15)) 640 $g_operator 1685168404Spjd} 1686168404Spjd 1687168404Spjd# make only the very few basic disk device nodes - 'a' partition 1688168404Spjd# and raw partition 1689168404Spjdmakedisk_minimal() 1690185029Spjd{ 1691168404Spjd name=$1; unit=$2; blk=$3; chr=$4 1692168404Spjd doff=%DISKMINOROFFSET% 1693168404Spjd ro=%RAWDISK_OFF% 1694168404Spjd rn=%RAWDISK_NAME% 1695168404Spjd 1696168404Spjd mkdev ${name}${unit}a b $blk $(($unit * $doff + 0)) 640 $g_operator 1697168404Spjd mkdev ${name}${unit}$rn b $blk $(($unit * $doff + $ro)) 640 $g_operator 1698168404Spjd mkdev r${name}${unit}a c $chr $(($unit * $doff + 0)) 640 $g_operator 1699168404Spjd mkdev r${name}${unit}$rn c $chr $(($unit * $doff + $ro)) 640 $g_operator 1700168404Spjd} 1701168404Spjd 1702168404Spjdmakedev $* 1703168404Spjd