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