MAKEDEV.tmpl revision 1.22
1#!/bin/sh - 2# $NetBSD: MAKEDEV.tmpl,v 1.22 2004/03/08 23:05:37 lukem Exp $ 3# 4# Copyright (c) 2003 The NetBSD Foundation, Inc. 5# All rights reserved. 6# 7# Redistribution and use in source and binary forms, with or without 8# modification, are permitted provided that the following conditions 9# are met: 10# 1. Redistributions of source code must retain the above copyright 11# notice, this list of conditions and the following disclaimer. 12# 2. Redistributions in binary form must reproduce the above copyright 13# notice, this list of conditions and the following disclaimer in the 14# documentation and/or other materials provided with the distribution. 15# 3. All advertising materials mentioning features or use of this software 16# must display the following acknowledgement: 17# This product includes software developed by the NetBSD 18# Foundation, Inc. and its contributors. 19# 4. Neither the name of The NetBSD Foundation nor the names of its 20# contributors may be used to endorse or promote products derived 21# from this software without specific prior written permission. 22# 23# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 24# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 25# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 26# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 27# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 30# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 31# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 32# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33# POSSIBILITY OF SUCH DAMAGE. 34# 35# 36########################################################################### 37# 38# PLEASE RUN "cd ../share/man/man8 ; make makedevs" 39# AFTER CHANGING THIS FILE, AND COMMIT THE UPDATED MANPAGE! 40# 41########################################################################### 42# 43# Device "make" file. Valid special arguments: 44# all makes all known devices, including local devices. 45# Tries to make the 'standard' number of each type. 46# init A set of devices that is used for MFS /dev by init. 47# May be equal to "all". 48# floppy devices to be put on install floppies 49# ramdisk devices to be put into INSTALL kernel ramdisks. 50# std standard devices 51# local configuration specific devices 52# wscons make wscons devices 53# usbs make USB devices 54# isdns make ISDN devices 55# 56# Tapes: 57# st* SCSI tapes 58# wt* QIC-interfaced (e.g. not SCSI) 3M cartridge tape 59# ht* MASSBUS TM03 and TU?? 60# mt* MSCP tapes (e.g. TU81, TK50) 61# tm* UNIBUS TM11 and TE10 emulations (e.g. Emulex TC-11) 62# ts* UNIBUS TS11 63# ut* UNIBUS TU45 emulations (e.g. si 9700) 64# uu* TU58 cassettes on DL11 controller 65# 66# Disks: 67# ccd* concatenated disk devices 68# cd* SCSI or ATAPI CD-ROM 69# cgd* cryptographic disk devices 70# raid* RAIDframe disk devices 71# sd* SCSI disks 72# wd* "winchester" disk drives (ST506,IDE,ESDI,RLL,...) 73# bmd* Nereid bank memory disks 74# ed* IBM PS/2 ESDI disk devices 75# fd* "floppy" disk drives (3 1/2", 5 1/4") 76# fss* Files system snapshot devices 77# gdrom* Dreamcast "gigadisc" CD-ROM drive 78# hk* UNIBUS RK06 and RK07 79# hp* MASSBUS RM?? 80# ld* Logical disk devices (e.g., hardware RAID) 81# mcd* Mitsumi CD-ROM 82# md* memory pseudo-disk devices 83# ofdisk* OpenFirmware disk devices 84# ra* MSCP disks (RA??, RD??) 85# rb* 730 IDC w/ RB80 and/or RB02 86# rd* HDC9224 RD disks on VS2000 87# rl* UNIBUS RL02 88# rx* MSCP floppy disk (RX33/50/...) 89# up* other UNIBUS devices (e.g. on Emulex SC-21V controller) 90# vnd* "file" pseudo-disks 91# xd* Xylogic 753/7053 disks 92# xy* Xylogic 450/451 disks 93# 94# Pointing devices: 95# wsmouse* wscons mouse events 96# lms* Logitech bus mouse 97# mms* Microsoft bus mouse 98# qms* "quadrature mouse" 99# pms* PS/2 mouse 100# mouse mouse (provides events, for X11) 101# 102# Keyboard devices: 103# wskbd* wscons keyboard events 104# kbd raw keyboard (provides events, for X11) 105# kbdctl keyboard control 106# 107# Terminals/Console ports: 108# tty[01]* standard serial ports 109# tty0* SB1250 ("sbscn") serial ports (sbmips) 110# ttyE* wscons - Workstation console ("wscons") glass-tty emulators 111# ttyCZ? Cyclades-Z multiport serial boards. Each "unit" 112# makes 64 ports. 113# ttyCY? Cyclom-Y multiport serial boards. Each "unit" makes 114# 32 ports. 115# ttye* ITE bitmapped consoles 116# ttyv0 pccons 117# ttyC? NS16550 ("com") serial ports 118# ttyS* SA1110 serial port (hpcarm) 119# ttyTX? TX39 internal serial ports (hpcmips) 120# ttyB? DEC 3000 ZS8530 ("scc") serial ports (alpha) 121# ttyA* mfc serial ports (amiga) 122# ttyB* msc serial ports (amiga) 123# ttyC* com style serial ports (DraCo, HyperCom) (amiga) 124# On the DraCo, units 0 and 1 are the built-in "modem" and 125# "mouse" ports, if configured. 126# ttyA0 8530 Channel A (formerly ser02) (atari) 127# ttyA1 8530 Channel B (formerly mdm02) (atari) 128# ttyB0 UART on first 68901 (formerly mdm01) (atari) 129# ixpcom IXP12x0 COM ports 130# ttyM? HP200/300 4 port serial mux interface (hp300) 131# ttya "ttya" system console (luna68k) 132# ttyb second system serial port (luna68k) 133# tty* Onboard serial ports (mvme68k) 134# On the mvme147 these are: ttyZ1, ttyZ2 and ttyZ3. 135# On the mvme167, and '177: ttyC1, ttyC2 and ttyC3. 136# Note that tty[CZ]0 is grabbed by the console device 137# so is not created by default 138# dc* PMAX 4 channel serial interface (kbd, mouse, modem, printer) 139# scc* 82530 serial interface (pmax) 140# ttyZ* Zilog 8530 ("zstty") serial ports 141# tty[abcd] Built-in serial ports (sparc) 142# tty* Z88530 serial controllers (sparc64) 143# ttyh* SAB82532 serial controllers (sparc64) 144# tty[a-j] Built-in serial ports (sun2, sun3) 145# ttyC? pccons (arc) 146# dz* UNIBUS DZ11 and DZ32 (vax) 147# dh* UNIBUS DH11 and emulations (e.g. Able DMAX, Emulex CS-11) (vax) 148# dmf* UNIBUS DMF32 (vax) 149# dhu* UNIBUS DHU11 (vax) 150# dmz* UNIBUS DMZ32 (vax) 151# dl* UNIBUS DL11 (vax) 152# 153# Terminal multiplexors: 154# dc* 4 channel serial interface (keyboard, mouse, modem, printer) 155# dh* UNIBUS DH11 and emulations (e.g. Able DMAX, Emulex CS-11) 156# dhu* UNIBUS DHU11 157# dl* UNIBUS DL11 158# dmf* UNIBUS DMF32 159# dmz* UNIBUS DMZ32 160# dz* UNIBUS DZ11 and DZ32 161# scc* 82530 serial interface 162# 163# Call units: 164# dn* UNIBUS DN11 and emulations (e.g. Able Quadracall) 165# 166# Pseudo terminals: 167# pty* set of 62 master and slave pseudo terminals 168# opty first 16 ptys, to save inodes on install media 169# ipty first 2 ptys, for install media use only 170# 171# Printers: 172# arcpp* Archimedes parallel port 173# lpt* stock lp 174# lpa* interruptless lp 175# par* Amiga motherboard parallel port 176# 177# USB devices: 178# usb* USB control devices 179# uhid* USB generic HID devices 180# ulpt* USB printer devices 181# ugen* USB generic devices 182# urio* USB Diamond Rio 500 devices 183# uscanner* USB scanners 184# ttyU* USB modems 185# 186# ISDN devices: 187# isdn communication between userland isdnd and kernel 188# isdnctl control device 189# isdnbchan* raw b-channel access 190# isdntel* telephony device 191# isdnteld* telephony dialout device 192# isdntrc* trace device 193# 194# Video devices: 195# bwtwo* monochromatic frame buffer 196# cgtwo* 8-bit color frame buffer 197# cgthree* 8-bit color frame buffer 198# cgfour* 8-bit color frame buffer 199# cgsix* accelerated 8-bit color frame buffer 200# cgeight* 24-bit color frame buffer 201# etvme Tseng et-compatible cards on VME (atari) 202# ik* UNIBUS interface to Ikonas frame buffer 203# leo Circad Leonardo VME-bus true color (atari) 204# ps* UNIBUS interface to Picture System 2 205# qv* QVSS (MicroVAX) display 206# tcx* accelerated 8/24-bit color frame buffer 207# 208# Maple bus devices: 209# maple Maple bus control devices 210# mlcd* Maple bus LCD devices 211# mmem* Maple bus storage devices 212# 213# Special purpose devices: 214# ad* UNIBUS interface to Data Translation A/D converter 215# agp* AGP GART devices 216# altq ALTQ control interface 217# apm power management device 218# audio* audio devices 219# bell* OPM bell device (x68k) 220# bktr Brooktree 848/849/878/879 based TV cards 221# bpf* packet filter 222# cfs* Coda file system device 223# ch* SCSI media changer 224# cir* Consumer IR 225# clockctl clock control for non root users 226# crypto hardware crypto access driver 227# dmoverio hardware-assisted data movers 228# dpt* DPT/Adaptec EATA RAID management interface 229# dpti* DPT/Adaptec I2O RAID management interface 230# fb* PMAX generic framebuffer pseudo-device 231# fd file descriptors 232# grf* graphics frame buffer device 233# hil HP300 HIL input devices 234# icp ICP-Vortex/Intel RAID control interface 235# iic* IIC bus device 236# iop* I2O IOP control interface 237# ipl IP Filter 238# irframe* IrDA physical frame 239# ite* terminal emulator interface to HP300 graphics devices 240# joy* joystick device 241# kttcp kernel ttcp helper device 242# lkm loadable kernel modules interface 243# magma* Magma multiport serial/parallel cards 244# midi* MIDI 245# mlx* Mylex DAC960 control interface 246# mly* Mylex AcceleRAID/eXtremeRAID control interface 247# np* UNIBUS Ethernet co-processor interface, for downloading. 248# nsmb* SMB requester 249# openfirm OpenFirmware accessor 250# pci* PCI bus access devices 251# pf PF packet filter (not in tree) 252# pow* power management device (x68k) 253# px* PixelStamp Xserver access 254# radio* radio devices 255# random Random number generator 256# rtc* RealTimeClock 257# satlink* PlanetConnect satellite receiver driver 258# scsibus* SCSI busses 259# se* SCSI Ethernet 260# ses* SES/SAF-TE SCSI Devices 261# speaker PC speaker (XXX - installed) 262# sram battery backuped memory (x68k) 263# ss* SCSI scanner 264# stic* PixelStamp interface chip 265# sysmon System Monitoring hardware 266# systrace syscall tracer 267# tun* network tunnel driver 268# twe 3ware Escalade control interface 269# uk* unknown SCSI device 270# veriexec verified executable fingerprint loader 271# vmegen* generic VME access 272# view* generic interface to graphic displays (Amiga) 273# wsfont* console font control 274# wsmux* wscons event multiplexor 275 276 277PATH=/sbin:/usr/sbin:/bin:/usr/bin:/rescue 278 279 280usage() 281{ 282 cat 1>&2 << _USAGE_ 283Usage: ${0##*/} [-f] [-m mknod] [-s] special [...] 284 Create listed special devices. Options: 285 -f Force permissions to be updated on existing devices. 286 -m mknod Name of mknod(8) program. [\$TOOL_MKNOD or mknod] 287 -s Generate mtree(8) specfile instead of creating devices. 288 289_USAGE_ 290 exit 1 291} 292 293do_force=false 294do_specfile=false 295while getopts fm:s ch; do 296 case ${ch} in 297 f) do_force=true ;; 298 m) TOOL_MKNOD=${OPTARG} ;; 299 s) do_specfile=true ;; 300 *) usage ;; 301 esac 302done 303shift $((${OPTIND} - 1)) 304[ $# -gt 0 ] || usage 305 306 307MKNOD="${TOOL_MKNOD:-mknod} -F netbsd" 308if $do_force; then 309 MKNOD="${MKNOD} -R" 310else 311 MKNOD="${MKNOD} -r" 312fi 313 314u_root="%uid_root%" 315u_uucp="%uid_uucp%" 316g_kmem="%gid_kmem%" 317g_ntpd="%gid_ntpd%" 318g_operator="%gid_operator%" 319g_wheel="%gid_wheel%" 320dialin=0 321dialout=524288 322callunit=262144 323 324# only allow read&write for owner by default 325umask 077 326 327# Check if we have fdesc mounted 328if [ -d fd ]; then 329 case "`df fd`" in 330 *fdesc*) nofdesc=false;; 331 *) nofdesc=true;; 332 esac 333else 334 nofdesc=true 335fi 336 337 338if $do_specfile; then 339 echo ". type=dir" 340fi 341 342 343# 344# functions available to create nodes: 345# 346# mkdev name [b|c] major minor [mode{=600} [gid{=0} [uid{=0}]]] 347# create device node `name' with the appropriate permissions 348# 349# lndev src target 350# create a symlink from src to target 351# 352# makedir dir mode 353# create directory with appropriate mode 354# 355 356mkdev() 357{ 358 if $do_specfile; then 359 case $2 in 360 b) type=block ;; 361 c) type=char ;; 362 esac 363 echo "./$1 type=${type} device=netbsd,$3,$4 mode=${5:-600} gid=${6:-$g_wheel} uid=${7:-$u_root}" 364 else 365 ${MKNOD} -m ${5:-600} -g \#${6:-$g_wheel} -u \#${7:-$u_root} $1 $2 $3 $4 366 fi 367} 368 369lndev() 370{ 371 if $do_specfile; then 372 echo "./$2 type=link link=$1 mode=0700 gid=$g_wheel uid=$u_root" 373 else 374 ln -f -s $1 $2 375 fi 376} 377 378makedir() 379{ 380 if $do_specfile; then 381 echo "./$1 type=dir mode=$2 gid=$g_wheel uid=$u_root" 382 else 383 mkdir $1 2>/dev/null 384 chmod $2 $1 385 fi 386} 387 388warn() 389{ 390 echo 1>&2 "$0: $*" 391} 392 393 394 395# makedev special [...] 396# the main loop 397# 398 399makedev() 400{ 401 402for i 403do 404 405case $i in 406 407%MD_DEVICES% 408 409all) 410 makedev all_md 411 makedev std fd pty0 412 makedev ccd0 ccd1 ccd2 ccd3 413 makedev cgd0 cgd1 cgd2 cgd3 414 makedev fss0 fss1 fss2 fss3 415 makedev md0 md1 416 makedev raid0 raid1 raid2 raid3 raid4 raid5 raid6 raid7 417 makedev vnd0 vnd1 vnd2 vnd3 418 makedev bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7 419 makedev tun0 tun1 tun2 tun3 420 makedev ipl crypto random systrace 421 makedev lkm clockctl 422 makedev local 423 ;; 424 425init) 426 # unless overridden by MD entry, this is equal to 'all' 427 makedev all 428 ;; 429 430%MI_DEVICES_BEGIN% 431audio) 432 makedev audio0 audio1 audio2 audio3 433 lndev sound0 sound 434 lndev audio0 audio 435 lndev mixer0 mixer 436 lndev audioctl0 audioctl 437 ;; 438 439radio) 440 makedev radio0 radio1 441 lndev radio0 radio 442 ;; 443 444ramdisk) 445 makedev floppy md0 446 ;; 447 448usbs) 449 makedev usb usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7 450 makedev uhid0 uhid1 uhid2 uhid3 451 makedev ulpt0 ulpt1 452 makedev ttyU0 ttyU1 453 makedev urio0 454 makedev uscanner0 uscanner1 455 makedev ugen0 456 ;; 457 458isdns) 459 makedev isdn isdnctl isdnbchan0 isdnbchan1 isdntel0 isdntel1 isdnteld0 isdnteld1 isdntrc0 isdntrc1 460 ;; 461 462std) 463 mkdev console c %cons_chr% 0 600 464 mkdev constty c %cons_chr% 1 600 465 mkdev drum c %swap_chr% 0 640 $g_kmem 466 mkdev kmem c %mem_chr% 1 640 $g_kmem 467 mkdev mem c %mem_chr% 0 640 $g_kmem 468 mkdev null c %mem_chr% 2 666 469 mkdev zero c %mem_chr% 12 666 470 mkdev klog c %log_chr% 0 600 471 mkdev ksyms c %ksyms_chr% 0 444 472 if $nofdesc; then 473 mkdev tty c %ctty_chr% 0 666 474 mkdev stdin c %filedesc_chr% 0 666 475 mkdev stdout c %filedesc_chr% 1 666 476 mkdev stderr c %filedesc_chr% 2 666 477 fi 478 ;; 479 480usb*) 481 unit=${i#usb} 482 if [ "$unit" = "" ]; then 483 unit=255 484 usb=usb 485 else 486 usb=usb$unit 487 fi 488 mkdev $usb c %usb_chr% $unit 489 ;; 490 491uhid*) 492 unit=${i#uhid} 493 mkdev uhid$unit c %uhid_chr% $unit 666 494 ;; 495 496ulpt*) 497 unit=${i#ulpt} 498 mkdev ulpt$unit c %ulpt_chr% $unit 499 mkdev ulpn$unit c %ulpt_chr% $(($unit + 64)) 500 ;; 501 502urio*) 503 unit=${i#urio} 504 mkdev urio$unit c %urio_chr% $unit 666 505 ;; 506 507uscanner*) 508 unit=${i#uscanner} 509 mkdev uscanner$unit c %uscanner_chr% $unit 510 ;; 511 512ttyU*) 513 unit=${i#ttyU} 514 mkdev ttyU$unit c %ucom_chr% $(($unit + $dialin )) "" "" $u_uucp 515 mkdev dtyU$unit c %ucom_chr% $(($unit + $dialout )) "" "" $u_uucp 516 mkdev ctyU$unit c %ucom_chr% $(($unit + $callunit)) "" "" $u_uucp 517 ;; 518 519ugen*) 520 unit=${i#ugen} 521 for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 522 do 523 mkdev ugen$unit.$j c %ugen_chr% $(($unit * 16 + ${j#0})) 524 done 525 ;; 526 527wscons) 528 makedev ttyE0 ttyE1 ttyE2 ttyE3 ttyE4 ttyE5 ttyE6 ttyE7 529 makedev wsmouse0 wsmouse1 wsmouse2 wsmouse3 530 makedev wskbd0 wskbd1 wskbd2 wskbd3 531 makedev wsmux0 wsmux1 wsmux2 wsmux3 532 makedev wsmouse wskbd 533 makedev ttyEcfg ttyEstat 534 makedev wsfont 535 ;; 536 537wsmouse) 538 mkdev wsmouse c %wsmux_chr% 0 539 ;; 540 541wskbd) 542 mkdev wskbd c %wsmux_chr% 1 543 ;; 544 545wsmux*) 546 unit=${i#wsmux} 547 mkdev wsmux$unit c %wsmux_chr% $unit 548 mkdev wsmuxctl$unit c %wsmux_chr% $(($unit + 128)) 200 549 ;; 550 551ttyEstat) 552 mkdev ttyEstat c %wsdisplay_chr% 254 553 ;; 554 555ttyEcfg) 556 mkdev ttyEcfg c %wsdisplay_chr% 255 557 ;; 558 559ttyE*) 560 unit=${i#ttyE} 561 mkdev ttyE$unit c %wsdisplay_chr% $unit 562 ;; 563 564wsmouse*) 565 unit=${i#wsmouse} 566 mkdev wsmouse$unit c %wsmouse_chr% $unit 567 ;; 568 569wskbd*) 570 unit=${i#wskbd} 571 mkdev wskbd$unit c %wskbd_chr% $unit 572 ;; 573 574fd) 575 if $nofdesc; then 576 makedir fd 755 577 n=0 578 while [ $n -lt 64 ] 579 do 580 mkdev fd/$n c %filedesc_chr% $n 666 581 n=$(($n + 1)) 582 done 583 fi 584 ;; 585 586wt*) 587 case $i in 588 wt*) name=wt; unit=${i#wt}; chr=%wt_chr%; blk=%wt_blk%;; 589 esac 590 for sub in $unit $(($unit+8)) $(($unit+16)) 591 do 592 mkdev $name$sub b $blk $(($sub + 0)) 660 $g_operator 593 mkdev n$name$sub b $blk $(($sub + 4)) 660 $g_operator 594 mkdev r$name$sub c $chr $(($sub + 0)) 660 $g_operator 595 mkdev nr$name$sub c $chr $(($sub + 4)) 660 $g_operator 596 done 597 ;; 598 599md*) 600 makedisk_minimal md ${i#md} %md_blk% %md_chr% 601 ;; 602 603fss*) 604 case $i in 605 fss*) name=fss; unit=${i#fss}; blk=%fss_blk%; chr=%fss_chr% 606 esac 607 mkdev $name$unit b $blk $unit 660 $g_operator 608 mkdev r$name$unit c $chr $unit 660 $g_operator 609 ;; 610 611ss*) 612 case $i in 613 ss*) name=ss; unit=${i#ss}; chr=%ss_chr%;; 614 esac 615 mkdev $name$unit c $chr $(($unit * 16 + 0)) 640 $g_operator 616 mkdev n$name$unit c $chr $(($unit * 16 + 1)) 640 $g_operator 617 mkdev en$name$unit c $chr $(($unit * 16 + 3)) 640 $g_operator 618 ;; 619 620ccd*|cgd*|raid*|vnd*) 621 case $i in 622 ccd*) name=ccd; unit=${i#ccd}; blk=%ccd_blk%; chr=%ccd_chr%;; 623 cgd*) name=cgd; unit=${i#cgd}; blk=%cgd_blk%; chr=%cgd_chr%;; 624 raid*) name=raid; unit=${i#raid}; blk=%raid_blk%; chr=%raid_chr%;; 625 vnd*) name=vnd; unit=${i#vnd}; blk=%vnd_blk%; chr=%vnd_chr%;; 626 esac 627 %MKDISK% $name $unit $blk $chr 628 ;; 629 630sd*) 631 name=sd; unit=${i#sd}; blk=%sd_blk%; chr=%sd_chr% 632 %MKDISK% $name $unit $blk $chr 633 ;; 634 635wd*) 636 name=wd; unit=${i#wd}; blk=%wd_blk%; chr=%wd_chr% 637 %MKDISK% $name $unit $blk $chr 638 ;; 639 640fd*) 641 name=fd; unit=${i#fd}; blk=%fd_blk%; chr=%fd_chr% 642 %MKDISK% $name $unit $blk $chr 643 ;; 644 645ld*) 646 name=ld; unit=${i#ld}; blk=%ld_blk%; chr=%ld_chr% 647 %MKDISK% $name $unit $blk $chr 648 ;; 649 650ed*) 651 name=ed; unit=${i#ed}; blk=%ed_blk%; chr=%ed_chr% 652 %MKDISK% $name $unit $blk $chr 653 ;; 654 655ofdisk*) 656 name=ofdisk; unit=${i#ofdisk}; blk=%ofdisk_blk%; chr=%ofdisk_chr% 657 %MKDISK% $name $unit $blk $chr 658 ;; 659 660ttyCY*) 661 name=tyCY; chr=%cy_chr%; off=32; fmt="%03d" 662 unit=${i#t${name}} 663 minor=$(($unit * $off)) 664 eminor=$(($minor + $off)) 665 while [ $minor -lt $eminor ] 666 do 667 nminor=$(printf $fmt $minor) 668 mkdev t$name$nminor c $chr $(($minor + $dialin )) "" "" $u_uucp 669 mkdev d$name$nminor c $chr $(($minor + $dialout)) "" "" $u_uucp 670 minor=$(($minor + 1)) 671 done 672 ;; 673 674ttyCZ*) 675 name=tyCZ; chr=%cz_chr%; off=64; fmt="%04d" 676 unit=${i#t${name}} 677 minor=$(($unit * $off)) 678 eminor=$(($minor + $off)) 679 while [ $minor -lt $eminor ] 680 do 681 nminor=$(printf $fmt $minor) 682 mkdev t$name$nminor c $chr $(($minor + $dialin )) "" "" $u_uucp 683 mkdev d$name$nminor c $chr $(($minor + $dialout)) "" "" $u_uucp 684 minor=$(($minor + 1)) 685 done 686 ;; 687 688 689tty[0-9]|tty0[0-9]) 690 # some archs have built-in zstty (major %zstty_chr%) instead 691 # of NS16550; create ttyZ* and hardlink as [dt]ty0*; this 692 # needs to be before com entry, for archs which have both 693 unit=${i#tty} 694 unit=$(($unit + 0)) 695 makedev ttyZ${unit} 696 lndev ttyZ$unit tty0${unit} 697 lndev dtyZ$unit dty0${unit} 698 ;; 699 700tty0*|tty1*|tty[0-9]) 701 unit=${i#tty} 702 ounit=$(printf "%02d" $unit) 703 mkdev tty$ounit c %com_chr% $(($unit + $dialin )) "" "" $u_uucp 704 mkdev dty$ounit c %com_chr% $(($unit + $dialout)) "" "" $u_uucp 705 ;; 706 707ttyC*) 708 # some archs call com_chr ttyC traditionally 709 unit=${i#ttyC}; name=ttyC; dname=dtyC; chr=%com_chr% 710 mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 711 mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 712 ;; 713 714ttyh*) 715 unit=${i#ttyh}; name=ttyh; dname=dtyh; chr=%sabtty_chr% 716 mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 717 mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 718 ;; 719 720ttyTX*) 721 unit=${i#ttyTX}; name=ttyTX0; dname=dtyTX0; chr=%txcom_chr% 722 mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 723 mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 724 ;; 725 726ttyZ*) 727 unit=${i#ttyZ}; name=ttyZ; dname=dtyZ; chr=%zstty_chr% 728 mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp 729 mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp 730 ;; 731 732opty) 733 for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f 734 do 735 case $j in 736 [0-9]) jn=$j ;; 737 a) jn=10 ;; 738 b) jn=11 ;; 739 c) jn=12 ;; 740 d) jn=13 ;; 741 e) jn=14 ;; 742 f) jn=15 ;; 743 esac 744 mkdev ttyp$j c %pts_chr% $jn 666 745 mkdev ptyp$j c %ptc_chr% $jn 666 746 done 747 ;; 748 749pty*) 750 class=${i#pty} 751 set -- p q r s t u v w x y z P Q R S T 752 if [ "$class" -ge $# ]; then 753 warn "$i: pty unit must be between 0 and 15" 754 continue 755 fi 756 shift $class 757 name=$1 758 if [ "$name" = v ]; then 759 warn "$i: pty unit conflicts with console ttyv0 device" 760 continue 761 fi 762 jn=0 763 unit=$(($class * 16)) 764 set -- - 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 765 while 766 shift 767 j=$1 768 [ -n "$j" ] 769 do 770 if [ $j = g ]; then 771 unit=$(($unit + $class * 30 + 256 - 16)) 772 fi 773 mkdev tty$name$j c %pts_chr% $unit 666 774 mkdev pty$name$j c %ptc_chr% $unit 666 775 unit=$(($unit + 1)) 776 done 777 ;; 778 779stic*) 780 unit=${i#stic} 781 mkdev stic$unit c %stic_chr% $unit 782 ;; 783 784st*) 785 case $i in 786 st*) name=st; unit=${i#st}; chr=%st_chr%; blk=%st_blk%;; 787 esac 788 mkdev $name$unit b $blk $(($unit * 16 + 0)) 660 $g_operator 789 mkdev n$name$unit b $blk $(($unit * 16 + 1)) 660 $g_operator 790 mkdev e$name$unit b $blk $(($unit * 16 + 2)) 660 $g_operator 791 mkdev en$name$unit b $blk $(($unit * 16 + 3)) 660 $g_operator 792 mkdev r$name$unit c $chr $(($unit * 16 + 0)) 660 $g_operator 793 mkdev nr$name$unit c $chr $(($unit * 16 + 1)) 660 $g_operator 794 mkdev er$name$unit c $chr $(($unit * 16 + 2)) 660 $g_operator 795 mkdev enr$name$unit c $chr $(($unit * 16 + 3)) 660 $g_operator 796 ;; 797 798ses*|ch*|uk*) 799 case $i in 800 ch*) name=ch; unit=${i#ch}; chr=%ch_chr%;; 801 uk*) name=uk; unit=${i#uk}; chr=%uk_chr%;; 802 ses*) name=ses; unit=${i#ses}; chr=%ses_chr%;; 803 esac 804 mkdev $name$unit c $chr $unit 640 $g_operator 805 ;; 806 807cd*) 808 makedisk_minimal cd ${i#cd} %cd_blk% %cd_chr% % 809 ;; 810 811mcd*) 812 makedisk_minimal mcd ${i#mcd} %mcd_blk% %mcd_chr% 813 ;; 814 815gdrom*) 816 makedisk_minimal gdrom ${i#gdrom} %gdrom_blk% %gdrom_chr% 817 ;; 818 819lpt*|lpa*) 820 case $i in 821 lpt*) name=lpt; unit=${i#lpt}; chr=%lpt_chr%; flags=0;; 822 lpa*) name=lpa; unit=${i#lpa}; chr=%lpt_chr%; flags=128;; 823 esac 824 mkdev $name$unit c $chr $(($unit + $flags)) 825 mkdev lpt${unit}ctl c $chr $(($unit + 256)) 826 ;; 827 828bpf*|tun*) 829 case $i in 830 bpf*) name=bpf; unit=${i#bpf}; chr=%bpf_chr%;; 831 tun*) name=tun; unit=${i#tun}; chr=%tun_chr%;; 832 esac 833 mkdev $name$unit c $chr $unit 834 ;; 835 836joy*) 837 case $i in 838 joy*) name=joy; unit=${i#joy}; chr=%joy_chr%;; 839 esac 840 mkdev $name$unit c $chr $unit 841 ;; 842 843ipl) 844 mkdev ipl c %ipl_chr% 0 845 mkdev ipnat c %ipl_chr% 1 846 mkdev ipstate c %ipl_chr% 2 847 mkdev ipauth c %ipl_chr% 3 848 ;; 849 850pf) 851 mkdev pf c %pf_chr% 0 852 ;; 853 854crypto) 855 mkdev crypto c %crypto_chr% 0 666 856 ;; 857 858speaker) 859 mkdev speaker c %spkr_chr% 0 860 ;; 861 862lkm) 863 mkdev lkm c %lkm_chr% 0 640 $g_kmem 864 ;; 865 866audio*) 867 unit=${i#audio} 868 audio=audio$unit 869 sound=sound$unit 870 mixer=mixer$unit 871 audioctl=audioctl$unit 872 : ${unit:-0} 873 mkdev $sound c %audio_chr% $(($unit + 0)) 666 874 mkdev $audio c %audio_chr% $(($unit + 128)) 666 875 mkdev $mixer c %audio_chr% $(($unit + 16)) 666 876 mkdev $audioctl c %audio_chr% $(($unit + 192)) 666 877 ;; 878 879rmidi*) 880 unit=${i#rmidi} 881 mkdev rmidi$unit c %midi_chr% $unit 666 882 ;; 883 884music*) 885 unit=${i#music} 886 : ${unit:-0} 887 mkdev music$unit c %sequencer_chr% $(($unit + 0)) 666 888 mkdev sequencer$unit c %sequencer_chr% $(($unit + 128)) 666 889 ;; 890 891radio*) 892 unit=${i#radio} 893 : ${unit:-0} 894 mkdev radio$unit c %radio_chr% $unit 666 895 ;; 896 897apm) 898 mkdev apm c %apm_chr% 0 644 899 mkdev apmctl c %apm_chr% 8 644 900 ;; 901 902apm) 903 # hpcmips uses `apmdev_chr' instead of `apm_chr' 904 mkdev apm c %apmdev_chr% 0 644 905 mkdev apmctl c %apmdev_chr% 8 644 906 ;; 907 908satlink*) 909 unit=${i#satlink} 910 mkdev satlink$unit c %satlink_chr% $unit 444 911 ;; 912 913random) 914 mkdev random c %rnd_chr% 0 444 915 mkdev urandom c %rnd_chr% 1 644 916 ;; 917 918cfs*) 919 unit=${i#cfs} 920 mkdev cfs$unit c %vcoda_chr% $unit 921 ;; 922 923sysmon) 924 mkdev sysmon c %sysmon_chr% 0 644 925 mkdev watchdog c %sysmon_chr% 1 644 926 mkdev power c %sysmon_chr% 2 640 927 ;; 928 929scsibus*) 930 unit=${i#scsibus} 931 mkdev scsibus$unit c %scsibus_chr% $unit 644 932 ;; 933 934bktr) 935 makedev bktr0 bktr1 936 lndev bktr0 bktr 937 lndev tuner0 tuner 938 lndev vbi0 vbi 939 ;; 940 941bktr*) 942 unit=${i#bktr} 943 mkdev bktr$unit c %bktr_chr% $(($unit + 0)) 444 944 mkdev tuner$unit c %bktr_chr% $(($unit + 16)) 444 945 mkdev vbi$unit c %bktr_chr% $(($unit + 32)) 444 946 ;; 947 948iop*) 949 unit=${i#iop} 950 mkdev iop$unit c %iop_chr% $unit 951 ;; 952 953mlx*) 954 unit=${i#mlx} 955 mkdev mlx$unit c %mlx_chr% $unit 956 ;; 957 958mly*) 959 unit=${i#mly} 960 mkdev mly$unit c %mly_chr% $unit 961 ;; 962 963twe*) 964 unit=${i#twe} 965 mkdev twe$unit c %twe_chr% $unit 966 ;; 967 968icp*) 969 unit=${i#icp} 970 mkdev icp$unit c %icp_chr% $unit 971 ;; 972 973agp*) 974 unit=${i#agp} 975 mkdev agp$unit c %agp_chr% $unit 644 976 if [ "$unit" = "0" ]; then 977 lndev agp$unit agpgart 978 fi 979 ;; 980 981pci*) 982 unit=${i#pci} 983 mkdev pci$unit c %pci_chr% $unit 644 984 ;; 985 986dpti*) 987 unit=${i#dpti} 988 mkdev dpti$unit c %dpti_chr% $unit 989 ;; 990 991dpt*) 992 unit=${i#dpt} 993 mkdev dpt$unit c %dpt_chr% $unit 994 ;; 995 996altq) 997 makedir altq 755 998 unit=0 999 for dev in altq cbq wfq afm fifoq red rio localq hfsc cdnr blue priq 1000 do 1001 mkdev altq/$dev c %altq_chr% $unit 644 1002 unit=$(($unit + 1)) 1003 done 1004 ;; 1005 1006isdn) 1007 mkdev isdn c %isdn_chr% 0 1008 ;; 1009 1010isdnctl) 1011 mkdev isdnctl c %isdnctl_chr% 0 1012 ;; 1013 1014isdnbchan*) 1015 unit=${i#isdnbchan} 1016 mkdev isdnbchan$unit c %isdnbchan_chr% $unit 1017 ;; 1018 1019isdnteld*) 1020 unit=${i#isdnteld} 1021 mkdev isdnteld$unit c %isdntel_chr% $(($unit + 64)) 1022 ;; 1023 1024isdntel*) 1025 unit=${i#isdntel} 1026 mkdev isdntel$unit c %isdntel_chr% $unit 1027 ;; 1028 1029isdntrc*) 1030 unit=${i#isdntrc} 1031 mkdev isdntrc$unit c %isdntrc_chr% $unit 1032 ;; 1033 1034vmegen) 1035 makedev vmegen0 vmegen1 vmegen2 vmegen3 1036 ;; 1037 1038vmegen*) 1039 unit=${i#vmegen} 1040 mkdev vmegen$unit c %vmegeneric_chr% $(($unit * 16 + 0)) 1041 ;; 1042 1043wsfont) 1044 mkdev wsfont c %wsfont_chr% 0 1045 ;; 1046 1047cir*) 1048 unit=${i#cir} 1049 mkdev cir$unit c %cir_chr% $unit 666 1050 ;; 1051 1052irframe*) 1053 unit=${i#irframe} 1054 mkdev irframe$unit c %irframe_chr% $unit 1055 ;; 1056 1057fcom*) 1058 unit=${i#fcom} 1059 mkdev fcom$unit c %fcom_chr% $unit "" "" $u_uucp 1060 ;; 1061 1062openfirm) 1063 mkdev openfirm c %openfirm_chr% 0 444 1064 ;; 1065 1066nvram) 1067 mkdev nvram c %nvram_chr% 0 644 1068 ;; 1069 1070rtc) 1071 mkdev rtc c %rtc_chr% 0 644 1072 ;; 1073 1074clockctl) 1075 mkdev clockctl c %clockctl_chr% 0 660 $g_ntpd 1076 ;; 1077 1078nsmb) 1079 makedev nsmb0 nsmb1 nsmb2 nsmb3 1080 ;; 1081 1082nsmb*) 1083 unit=${i#nsmb} 1084 mkdev nsmb$unit c %nsmb_chr% $unit 644 1085 ;; 1086 1087systrace) 1088 mkdev systrace c %systrace_chr% 0 644 1089 ;; 1090 1091kttcp) 1092 mkdev kttcp c %kttcp_chr% 0 1093 ;; 1094 1095dmoverio) 1096 mkdev dmoverio c %dmoverio_chr% 0 644 1097 ;; 1098 1099veriexec) 1100 mkdev veriexec c %veriexec_chr% 0 644 1101 ;; 1102 1103ttyv*) 1104 unit=${i#ttyv} 1105 mkdev ttyv$unit c %pc_chr% $unit 1106 ;; 1107 1108# arm, acorn32 1109ttyv*) 1110 unit=${i#ttyv} 1111 mkdev ttyv$unit c %physcon_chr% $unit 1112 ;; 1113 1114arcpp*) 1115 unit=${i#arcpp} 1116 mkdev arcpp$unit c %arcpp_chr% $unit 1117 ;; 1118 1119par*) 1120 unit=${i#par} 1121 case $unit in 1122 0) 1123 mkdev par$unit c %par_chr% $unit 1124 ;; 1125 *) 1126 warn "bad unit for par in: $i" 1127 ;; 1128 esac 1129 ;; 1130 1131ite*|ttye*) 1132 case $i in 1133 ite*) unit=${i#ite};; 1134 ttye*) unit=${i#ttye};; 1135 esac 1136 mkdev ttye$unit c %ite_chr% $unit 1137 ;; 1138 1139pms*) 1140 unit=${i#pms} 1141 mkdev pms$unit c %opms_chr% $unit 1142 ;; 1143 1144qms*) 1145 unit=${i#qms} 1146 mkdev qms$unit c %qms_chr% $unit 1147 ;; 1148 1149lms*) 1150 unit=${i#lms} 1151 mkdev lms$unit c %lms_chr% $unit 1152 ;; 1153 1154mms*) 1155 unit=${i#mms} 1156 mkdev mms$unit c %mms_chr% $unit 1157 ;; 1158 1159mouse-*) 1160 case $i in 1161 mouse-pms*) name=pms ;; 1162 mouse-qms*) name=qms ;; 1163 esac 1164 unit=${i#mouse-${name}} 1165 lndev $name$unit mouse 1166 ;; 1167 1168kbd) 1169 mkdev kbd c %kbd_chr% 0 1170 ;; 1171 1172kbdctl) 1173 mkdev kbdctl c %kbd_chr% 1 1174 ;; 1175 1176vidcconsole0) 1177 mkdev vidcconsole0 c %vidcconsole_chr% 0 640 1178 ;; 1179 1180view*) 1181 unit=${i#view} 1182 mkdev view$unit c %view_chr% $unit 666 1183 ;; 1184 1185mouse*) 1186 unit=${i#mouse} 1187 case $unit in 1188 0|1) 1189 mkdev mouse$unit c %ms_chr% $unit 666 1190 if [ $unit = 0 ]; then 1191 lndev mouse$unit mouse 1192 fi 1193 ;; 1194 *) 1195 warn "bad unit for mouse in: $i" 1196 ;; 1197 esac 1198 ;; 1199 1200panel) 1201 mkdev panel0 c %panel_chr% 0 660 1202 ;; 1203 1204ipty) 1205 mkdev ttyp0 c %pts_chr% 0 666 1206 mkdev ttyp1 c %pts_chr% 1 666 1207 mkdev ptyp0 c %ptc_chr% 0 666 1208 mkdev ptyp1 c %ptc_chr% 1 666 1209 ;; 1210 1211grf*) 1212 unit=${i#grf} 1213 mkdev grf$unit c %grf_chr% $unit 666 1214 ;; 1215 1216etvme) 1217 mkdev etvme c %et_chr% 0 1218 ;; 1219 1220leo*) 1221 unit=${i#leo} 1222 mkdev leo$unit c %leo_chr% $unit 1223 ;; 1224 1225scif*) 1226 unit=${i#scif} 1227 mkdev scif$unit c %scif_chr% $unit "" "" $u_uucp 1228 ;; 1229 1230sci*) 1231 unit=${i#sci} 1232 mkdev sci$unit c %sci_chr% $unit "" "" $u_uucp 1233 ;; 1234 1235maple*) 1236 case $i in 1237 mapleA*) name="mapleA"; unit=0;; 1238 mapleB*) name="mapleB"; unit=1;; 1239 mapleC*) name="mapleC"; unit=2;; 1240 mapleD*) name="mapleD"; unit=3;; 1241 esac 1242 subunit=${i#$name} 1243 mkdev $name$subunit c %maple_chr% $(($unit * 8 + 0$subunit)) 1244 ;; 1245 1246mmem*) 1247 unit=${i#mmem} 1248 for pt in 0 # 1 2 3 4 ... 255 1249 do 1250# mkdev mmem${unit}.${pt}a b %mmem_blk% $(($unit * 4096 + $pt * 16 + 0)) 640 $g_operator 1251 mkdev mmem${unit}.${pt}c b %mmem_blk% $(($unit * 4096 + $pt * 16 + 2)) 640 $g_operator 1252# mkdev rmmem${unit}.${pt}a c %mmem_chr% $(($unit * 4096 + $pt * 16 + 0)) 640 $g_operator 1253 mkdev rmmem${unit}.${pt}c c %mmem_chr% $(($unit * 4096 + $pt * 16 + 2)) 640 $g_operator 1254 done 1255 ;; 1256 1257mlcd*) 1258 unit=${i#mlcd} 1259 for pt in 0 # 1 2 3 4 ... 255 1260 do 1261 mkdev mlcd${unit}.${pt} c %mlcd_chr% $(($unit * 256 + $pt)) 640 $g_operator 1262 done 1263 ;; 1264 1265ixpcom*) 1266 unit=${i#ixpcom} 1267 mkdev ixpcom$unit c %ixpcom_chr% $unit "" "" $u_uucp 1268 ;; 1269 1270ucbsnd) 1271 mkdev ucbsnd c %ucbsnd_chr% 0 666 1272 ;; 1273 1274adb) 1275 mkdev adb c %aed_chr% 0 666 1276 ;; 1277 1278asc*) 1279 unit=${i#asc} 1280 mkdev asc$unit c %asc_chr% $unit 666 1281 ;; 1282 1283bwtwo*) 1284 unit=${i#bwtwo} 1285 mkdev bwtwo$unit c %bwtwo_chr% $unit 666 1286 ;; 1287 1288cgtwo*) 1289 unit=${i#cgtwo} 1290 mkdev cgtwo$unit c %cgtwo_chr% $unit 666 1291 ;; 1292 1293cgthree*) 1294 unit=${i#cgthree} 1295 mkdev cgthree$unit c %cgthree_chr% $unit 666 1296 ;; 1297 1298cgfour*) 1299 unit=${i#cgfour} 1300 mkdev cgfour$unit c %cgfour_chr% $unit 666 1301 ;; 1302 1303cgsix*) 1304 unit=${i#cgsix} 1305 mkdev cgsix$unit c %cgsix_chr% $unit 666 1306 ;; 1307 1308cgeight*) 1309 unit=${i#cgeight} 1310 mkdev cgeight$unit c %cgeight_chr% $unit 666 1311 ;; 1312 1313tcx*) 1314 unit=${i#tcx} 1315 mkdev tcx$unit c %tcx_chr% $unit 666 1316 ;; 1317 1318xd*|xy*) 1319 case $i in 1320 xd*) name=xd; unit=${i#xd}; blk=%xd_blk%; chr=%xd_chr%;; 1321 xy*) name=xy; unit=${i#xy}; blk=%xy_blk%; chr=%xy_chr%;; 1322 esac 1323 %MKDISK% $name $unit $blk $chr 1324 ;; 1325 1326magma*) 1327 unit=${i#magma} 1328 if [ 0$unit -gt 3 ]; then 1329 warn "bad unit for $i: $unit" 1330 break 1331 fi 1332 for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f 1333 do 1334 case $j in 1335 [0-9]) jn=$j ;; 1336 a) jn=10 ;; 1337 b) jn=11 ;; 1338 c) jn=12 ;; 1339 d) jn=13 ;; 1340 e) jn=14 ;; 1341 f) jn=15 ;; 1342 esac 1343 mkdev tty$unit$j c %mtty_chr% $(($unit * 64 + $jn)) 1344 done 1345 mkdev bpp${unit}0 c %mbpp_chr% $(($unit * 64 + 0)) 1346 mkdev bpp${unit}1 c %mbpp_chr% $(($unit * 64 + 1)) 1347 ;; 1348 1349clcd*) 1350 unit=${i#clcd} 1351 if [ 0$unit -gt 7 ]; then 1352 warn "bad unit for $i: $unit" 1353 break 1354 fi 1355 for j in 0 1 2 3 4 5 6 7 1356 do 1357 mkdev ttyA$unit$j c %clcd_chr% $(($unit * 8 + $j + $dialin)) "" "" $u_uucp 1358 mkdev dtyA$unit$j c %clcd_chr% $(($unit * 8 + $j + $dialout)) "" "" $u_uucp 1359 done 1360 ;; 1361 1362bpp*) 1363 unit=${i#bpp} 1364 mkdev bpp$unit c %bpp_chr% $(($unit + 0)) 1365 ;; 1366 1367tctrl*) 1368 unit=${i#tctrl} 1369 mkdev tctrl$unit c %tctrl_chr% $unit 666 1370 ;; 1371 1372bmd*) 1373 unit=${i#bmd} 1374 mkdev bmd${unit}a b %bmd_blk% $(($unit * 8 + 0)) 640 $g_operator 1375 mkdev bmd${unit}c b %bmd_blk% $(($unit * 8 + 2)) 640 $g_operator 1376 mkdev rbmd${unit}a c %bmd_chr% $(($unit * 8 + 0)) 640 $g_operator 1377 mkdev rbmd${unit}c c %bmd_chr% $(($unit * 8 + 2)) 640 $g_operator 1378 ;; 1379 1380sram) 1381 mkdev sram c %sram_chr% 0 644 1382 ;; 1383 1384pow*) 1385 unit=${i#pow} 1386 case $unit in 1387 0|1) 1388 mkdev pow${unit} c %pow_chr% ${unit} 644 1389 if [ $unit = 0 ]; then 1390 lndev pow${unit} pow 1391 fi 1392 ;; 1393 *) 1394 warn "bad unit for pow in: $i" 1395 ;; 1396 esac 1397 ;; 1398 1399ttyS*) 1400 unit=${i#ttyS} 1401 mkdev ttyS$unit c %sacom_chr% $(($unit + $dialin )) "" "" $u_uucp 1402 mkdev dtyS$unit c %sacom_chr% $(($unit + $dialout)) "" "" $u_uucp 1403 ;; 1404 1405midevend) 1406%MI_DEVICES_END% 1407local) 1408 if [ -f "$0.local" ]; then 1409 umask 0 1410 sh $0.local all 1411 umask 077 1412 fi 1413 ;; 1414 1415*) 1416 warn "$i: unknown device" 1417 ;; 1418 1419esac 1420done 1421 1422} 1423 1424 1425# three variants of disk partitions - max 8, max 16, max 16 with highpartoffset 1426# hack; only the one used by port is retained in final MAKEDEV script 1427# routine is called as: 1428# makedisk name unit blk chr 1429makedisk_p8() 1430{ 1431 name="$1"; unit="$2"; blk="$3"; chr="$4" 1432 1433 mkdev ${name}${unit}a b $blk $(($unit * 8 + 0)) 640 $g_operator 1434 mkdev ${name}${unit}b b $blk $(($unit * 8 + 1)) 640 $g_operator 1435 mkdev ${name}${unit}c b $blk $(($unit * 8 + 2)) 640 $g_operator 1436 mkdev ${name}${unit}d b $blk $(($unit * 8 + 3)) 640 $g_operator 1437 mkdev ${name}${unit}e b $blk $(($unit * 8 + 4)) 640 $g_operator 1438 mkdev ${name}${unit}f b $blk $(($unit * 8 + 5)) 640 $g_operator 1439 mkdev ${name}${unit}g b $blk $(($unit * 8 + 6)) 640 $g_operator 1440 mkdev ${name}${unit}h b $blk $(($unit * 8 + 7)) 640 $g_operator 1441 mkdev r${name}${unit}a c $chr $(($unit * 8 + 0)) 640 $g_operator 1442 mkdev r${name}${unit}b c $chr $(($unit * 8 + 1)) 640 $g_operator 1443 mkdev r${name}${unit}c c $chr $(($unit * 8 + 2)) 640 $g_operator 1444 mkdev r${name}${unit}d c $chr $(($unit * 8 + 3)) 640 $g_operator 1445 mkdev r${name}${unit}e c $chr $(($unit * 8 + 4)) 640 $g_operator 1446 mkdev r${name}${unit}f c $chr $(($unit * 8 + 5)) 640 $g_operator 1447 mkdev r${name}${unit}g c $chr $(($unit * 8 + 6)) 640 $g_operator 1448 mkdev r${name}${unit}h c $chr $(($unit * 8 + 7)) 640 $g_operator 1449} 1450 1451makedisk_p16() 1452{ 1453 name="$1"; unit="$2"; blk="$3"; chr="$4" 1454 1455 mkdev ${name}${unit}a b $blk $(($unit * 16 + 0)) 640 $g_operator 1456 mkdev ${name}${unit}b b $blk $(($unit * 16 + 1)) 640 $g_operator 1457 mkdev ${name}${unit}c b $blk $(($unit * 16 + 2)) 640 $g_operator 1458 mkdev ${name}${unit}d b $blk $(($unit * 16 + 3)) 640 $g_operator 1459 mkdev ${name}${unit}e b $blk $(($unit * 16 + 4)) 640 $g_operator 1460 mkdev ${name}${unit}f b $blk $(($unit * 16 + 5)) 640 $g_operator 1461 mkdev ${name}${unit}g b $blk $(($unit * 16 + 6)) 640 $g_operator 1462 mkdev ${name}${unit}h b $blk $(($unit * 16 + 7)) 640 $g_operator 1463 mkdev ${name}${unit}i b $blk $(($unit * 16 + 8)) 640 $g_operator 1464 mkdev ${name}${unit}j b $blk $(($unit * 16 + 9)) 640 $g_operator 1465 mkdev ${name}${unit}k b $blk $(($unit * 16 + 10)) 640 $g_operator 1466 mkdev ${name}${unit}l b $blk $(($unit * 16 + 11)) 640 $g_operator 1467 mkdev ${name}${unit}m b $blk $(($unit * 16 + 12)) 640 $g_operator 1468 mkdev ${name}${unit}n b $blk $(($unit * 16 + 13)) 640 $g_operator 1469 mkdev ${name}${unit}o b $blk $(($unit * 16 + 14)) 640 $g_operator 1470 mkdev ${name}${unit}p b $blk $(($unit * 16 + 15)) 640 $g_operator 1471 mkdev r${name}${unit}a c $chr $(($unit * 16 + 0)) 640 $g_operator 1472 mkdev r${name}${unit}b c $chr $(($unit * 16 + 1)) 640 $g_operator 1473 mkdev r${name}${unit}c c $chr $(($unit * 16 + 2)) 640 $g_operator 1474 mkdev r${name}${unit}d c $chr $(($unit * 16 + 3)) 640 $g_operator 1475 mkdev r${name}${unit}e c $chr $(($unit * 16 + 4)) 640 $g_operator 1476 mkdev r${name}${unit}f c $chr $(($unit * 16 + 5)) 640 $g_operator 1477 mkdev r${name}${unit}g c $chr $(($unit * 16 + 6)) 640 $g_operator 1478 mkdev r${name}${unit}h c $chr $(($unit * 16 + 7)) 640 $g_operator 1479 mkdev r${name}${unit}i c $chr $(($unit * 16 + 8)) 640 $g_operator 1480 mkdev r${name}${unit}j c $chr $(($unit * 16 + 9)) 640 $g_operator 1481 mkdev r${name}${unit}k c $chr $(($unit * 16 + 10)) 640 $g_operator 1482 mkdev r${name}${unit}l c $chr $(($unit * 16 + 11)) 640 $g_operator 1483 mkdev r${name}${unit}m c $chr $(($unit * 16 + 12)) 640 $g_operator 1484 mkdev r${name}${unit}n c $chr $(($unit * 16 + 13)) 640 $g_operator 1485 mkdev r${name}${unit}o c $chr $(($unit * 16 + 14)) 640 $g_operator 1486 mkdev r${name}${unit}p c $chr $(($unit * 16 + 15)) 640 $g_operator 1487} 1488 1489makedisk_p16high() 1490{ 1491 ho=524280 # offset for partition 9 to 16 1492 name="$1"; unit="$2"; blk="$3"; chr="$4" 1493 1494 mkdev ${name}${unit}a b $blk $(($unit * 8 + 0)) 640 $g_operator 1495 mkdev ${name}${unit}b b $blk $(($unit * 8 + 1)) 640 $g_operator 1496 mkdev ${name}${unit}c b $blk $(($unit * 8 + 2)) 640 $g_operator 1497 mkdev ${name}${unit}d b $blk $(($unit * 8 + 3)) 640 $g_operator 1498 mkdev ${name}${unit}e b $blk $(($unit * 8 + 4)) 640 $g_operator 1499 mkdev ${name}${unit}f b $blk $(($unit * 8 + 5)) 640 $g_operator 1500 mkdev ${name}${unit}g b $blk $(($unit * 8 + 6)) 640 $g_operator 1501 mkdev ${name}${unit}h b $blk $(($unit * 8 + 7)) 640 $g_operator 1502 mkdev ${name}${unit}i b $blk $(($unit * 8 + $ho + 8)) 640 $g_operator 1503 mkdev ${name}${unit}j b $blk $(($unit * 8 + $ho + 9)) 640 $g_operator 1504 mkdev ${name}${unit}k b $blk $(($unit * 8 + $ho + 10)) 640 $g_operator 1505 mkdev ${name}${unit}l b $blk $(($unit * 8 + $ho + 11)) 640 $g_operator 1506 mkdev ${name}${unit}m b $blk $(($unit * 8 + $ho + 12)) 640 $g_operator 1507 mkdev ${name}${unit}n b $blk $(($unit * 8 + $ho + 13)) 640 $g_operator 1508 mkdev ${name}${unit}o b $blk $(($unit * 8 + $ho + 14)) 640 $g_operator 1509 mkdev ${name}${unit}p b $blk $(($unit * 8 + $ho + 15)) 640 $g_operator 1510 mkdev r${name}${unit}a c $chr $(($unit * 8 + 0)) 640 $g_operator 1511 mkdev r${name}${unit}b c $chr $(($unit * 8 + 1)) 640 $g_operator 1512 mkdev r${name}${unit}c c $chr $(($unit * 8 + 2)) 640 $g_operator 1513 mkdev r${name}${unit}d c $chr $(($unit * 8 + 3)) 640 $g_operator 1514 mkdev r${name}${unit}e c $chr $(($unit * 8 + 4)) 640 $g_operator 1515 mkdev r${name}${unit}f c $chr $(($unit * 8 + 5)) 640 $g_operator 1516 mkdev r${name}${unit}g c $chr $(($unit * 8 + 6)) 640 $g_operator 1517 mkdev r${name}${unit}h c $chr $(($unit * 8 + 7)) 640 $g_operator 1518 mkdev r${name}${unit}i c $chr $(($unit * 8 + $ho + 8)) 640 $g_operator 1519 mkdev r${name}${unit}j c $chr $(($unit * 8 + $ho + 9)) 640 $g_operator 1520 mkdev r${name}${unit}k c $chr $(($unit * 8 + $ho + 10)) 640 $g_operator 1521 mkdev r${name}${unit}l c $chr $(($unit * 8 + $ho + 11)) 640 $g_operator 1522 mkdev r${name}${unit}m c $chr $(($unit * 8 + $ho + 12)) 640 $g_operator 1523 mkdev r${name}${unit}n c $chr $(($unit * 8 + $ho + 13)) 640 $g_operator 1524 mkdev r${name}${unit}o c $chr $(($unit * 8 + $ho + 14)) 640 $g_operator 1525 mkdev r${name}${unit}p c $chr $(($unit * 8 + $ho + 15)) 640 $g_operator 1526} 1527 1528# make only the very few basic disk device nodes - 'a' partition 1529# and raw partition 1530makedisk_minimal() 1531{ 1532 name=$1; unit=$2; blk=$3; chr=$4 1533 doff=%DISKMINOROFFSET% 1534 ro=%RAWDISK_OFF% 1535 rn=%RAWDISK_NAME% 1536 1537 mkdev ${name}${unit}a b $blk $(($unit * $doff + 0)) 640 $g_operator 1538 mkdev ${name}${unit}$rn b $blk $(($unit * $doff + $ro)) 640 $g_operator 1539 mkdev r${name}${unit}a c $chr $(($unit * $doff + 0)) 640 $g_operator 1540 mkdev r${name}${unit}$rn c $chr $(($unit * $doff + $ro)) 640 $g_operator 1541} 1542 1543makedev $* 1544