Annotation of src/etc/MAKEDEV.tmpl, Revision 1.18
1.1 jdolecek 1: #!/bin/sh -
1.18 ! jdolecek 2: # $NetBSD: MAKEDEV.tmpl,v 1.17 2004/01/14 05:13:53 blymn 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:
1.16 lukem 277: PATH=/sbin:/usr/sbin:/bin:/usr/bin:/rescue
278:
279:
1.15 lukem 280: usage()
281: {
282: cat 1>&2 << _USAGE_
283: Usage: ${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:
293: do_force=false
294: do_specfile=false
295: while 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
302: done
303: shift $((${OPTIND} - 1))
304: [ $# -gt 0 ] || usage
305:
306:
307: MKNOD="${TOOL_MKNOD:-mknod} -F netbsd"
308: if ! $do_force; then
309: MKNOD="${MKNOD} -r"
310: fi
311:
312: u_root="%uid_root%"
313: u_uucp="%uid_uucp%"
314: g_kmem="%gid_kmem%"
315: g_ntpd="%gid_ntpd%"
316: g_operator="%gid_operator%"
317: g_wheel="%gid_wheel%"
1.1 jdolecek 318: dialin=0
319: dialout=524288
320: callunit=262144
321:
322: # only allow read&write for owner by default
323: umask 077
324:
325: # Check if we have fdesc mounted
326: if [ -d fd ]; then
327: case "`df fd`" in
1.15 lukem 328: *fdesc*) nofdesc=false;;
329: *) nofdesc=true;;
1.1 jdolecek 330: esac
331: else
332: nofdesc=true
333: fi
334:
1.15 lukem 335:
336: if $do_specfile; then
337: echo ". type=dir"
338: fi
339:
340:
341: #
342: # functions available to create nodes:
343: #
344: # mkdev name [b|c] major minor [mode{=600} [gid{=0} [uid{=0}]]]
345: # create device node `name' with the appropriate permissions
346: #
347: # lndev src target
348: # create a symlink from src to target
349: #
350: # makedir dir mode
351: # create directory with appropriate mode
352: #
353:
354: mkdev()
355: {
356: if $do_specfile; then
357: case $2 in
358: b) type=block ;;
359: c) type=char ;;
360: esac
361: echo "./$1 type=${type} device=netbsd,$3,$4 mode=${5:-600} gid=${6:-$g_wheel} uid=${7:-$u_root}"
362: else
363: ${MKNOD} -m ${5:-600} -g \#${6:-$g_wheel} -u \#${7:-$u_root} $1 $2 $3 $4
364: fi
1.1 jdolecek 365: }
366:
1.15 lukem 367: lndev()
368: {
369: if $do_specfile; then
370: echo "./$2 type=link link=$1 mode=0700 gid=$g_wheel uid=$u_root"
371: else
372: ln -f -s $1 $2
373: fi
374: }
375:
376: makedir()
377: {
378: if $do_specfile; then
379: echo "./$1 type=dir mode=$2 gid=$g_wheel uid=$u_root"
380: else
381: mkdir $1 2>/dev/null
382: chmod $2 $1
383: fi
384: }
385:
1.16 lukem 386: warn()
387: {
388: echo 1>&2 "$0: $*"
389: }
390:
1.15 lukem 391:
392:
393: # makedev special [...]
394: # the main loop
395: #
396:
1.1 jdolecek 397: makedev()
398: {
399:
400: for i
401: do
402:
403: case $i in
404:
405: %MD_DEVICES%
1.2 jdolecek 406:
407: all)
408: makedev all_md
409: makedev std fd pty0
410: makedev ccd0 ccd1 ccd2 ccd3
411: makedev cgd0 cgd1 cgd2 cgd3
1.11 hannken 412: makedev fss0 fss1 fss2 fss3
1.2 jdolecek 413: makedev md0 md1
414: makedev raid0 raid1 raid2 raid3 raid4 raid5 raid6 raid7
415: makedev vnd0 vnd1 vnd2 vnd3
416: makedev bpf0 bpf1 bpf2 bpf3 bpf4 bpf5 bpf6 bpf7
417: makedev tun0 tun1 tun2 tun3
1.4 jdolecek 418: makedev ipl crypto random systrace
1.2 jdolecek 419: makedev lkm clockctl
420: makedev local
421: ;;
422:
423: init)
424: # unless overridden by MD entry, this is equal to 'all'
425: makedev all
426: ;;
1.1 jdolecek 427:
428: %MI_DEVICES_BEGIN%
429: audio)
430: makedev audio0 audio1 audio2 audio3
1.15 lukem 431: lndev sound0 sound
432: lndev audio0 audio
433: lndev mixer0 mixer
434: lndev audioctl0 audioctl
1.1 jdolecek 435: ;;
436:
437: radio)
438: makedev radio0 radio1
1.15 lukem 439: lndev radio0 radio
1.1 jdolecek 440: ;;
441:
442: ramdisk)
443: makedev floppy md0
444: ;;
445:
446: usbs)
447: makedev usb usb0 usb1 usb2 usb3 usb4 usb5 usb6 usb7
448: makedev uhid0 uhid1 uhid2 uhid3
449: makedev ulpt0 ulpt1
450: makedev ttyU0 ttyU1
451: makedev urio0
452: makedev uscanner0 uscanner1
453: makedev ugen0
454: ;;
455:
456: isdns)
457: makedev isdn isdnctl isdnbchan0 isdnbchan1 isdntel0 isdntel1 isdnteld0 isdnteld1 isdntrc0 isdntrc1
458: ;;
459:
460: std)
1.15 lukem 461: mkdev console c %cons_chr% 0 600
462: mkdev constty c %cons_chr% 1 600
463: mkdev drum c %swap_chr% 0 640 $g_kmem
464: mkdev kmem c %mem_chr% 1 640 $g_kmem
465: mkdev mem c %mem_chr% 0 640 $g_kmem
466: mkdev null c %mem_chr% 2 666
467: mkdev zero c %mem_chr% 12 666
468: mkdev klog c %log_chr% 0 600
469: mkdev ksyms c %ksyms_chr% 0 444
1.1 jdolecek 470: if $nofdesc; then
1.15 lukem 471: mkdev tty c %ctty_chr% 0 666
472: mkdev stdin c %filedesc_chr% 0 666
473: mkdev stdout c %filedesc_chr% 1 666
474: mkdev stderr c %filedesc_chr% 2 666
1.1 jdolecek 475: fi
476: ;;
477:
478: usb*)
479: unit=${i#usb}
480: if [ "$unit" = "" ]; then
1.15 lukem 481: unit=255
482: usb=usb
1.1 jdolecek 483: else
1.15 lukem 484: usb=usb$unit
1.1 jdolecek 485: fi
1.15 lukem 486: mkdev $usb c %usb_chr% $unit
1.1 jdolecek 487: ;;
488:
489: uhid*)
490: unit=${i#uhid}
1.15 lukem 491: mkdev uhid$unit c %uhid_chr% $unit 666
1.1 jdolecek 492: ;;
493:
494: ulpt*)
495: unit=${i#ulpt}
1.15 lukem 496: mkdev ulpt$unit c %ulpt_chr% $unit
497: mkdev ulpn$unit c %ulpt_chr% $(($unit + 64))
1.1 jdolecek 498: ;;
499:
500: urio*)
501: unit=${i#urio}
1.15 lukem 502: mkdev urio$unit c %urio_chr% $unit 666
1.1 jdolecek 503: ;;
504:
505: uscanner*)
506: unit=${i#uscanner}
1.15 lukem 507: mkdev uscanner$unit c %uscanner_chr% $unit
1.1 jdolecek 508: ;;
509:
510: ttyU*)
511: unit=${i#ttyU}
1.15 lukem 512: mkdev ttyU$unit c %ucom_chr% $(($unit + $dialin )) "" "" $u_uucp
513: mkdev dtyU$unit c %ucom_chr% $(($unit + $dialout )) "" "" $u_uucp
514: mkdev ctyU$unit c %ucom_chr% $(($unit + $callunit)) "" "" $u_uucp
1.1 jdolecek 515: ;;
516:
517: ugen*)
518: unit=${i#ugen}
519: for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
520: do
1.15 lukem 521: mkdev ugen$unit.$j c %ugen_chr% $(($unit * 16 + ${j#0}))
1.1 jdolecek 522: done
523: ;;
524:
525: wscons)
526: makedev ttyE0 ttyE1 ttyE2 ttyE3 ttyE4 ttyE5 ttyE6 ttyE7
527: makedev wsmouse0 wsmouse1 wsmouse2 wsmouse3
528: makedev wskbd0 wskbd1 wskbd2 wskbd3
529: makedev wsmux0 wsmux1 wsmux2 wsmux3
530: makedev wsmouse wskbd
531: makedev ttyEcfg ttyEstat
532: makedev wsfont
533: ;;
534:
535: wsmouse)
1.15 lukem 536: mkdev wsmouse c %wsmux_chr% 0
1.1 jdolecek 537: ;;
538:
539: wskbd)
1.15 lukem 540: mkdev wskbd c %wsmux_chr% 1
1.1 jdolecek 541: ;;
542:
543: wsmux*)
544: unit=${i#wsmux}
1.15 lukem 545: mkdev wsmux$unit c %wsmux_chr% $unit
546: mkdev wsmuxctl$unit c %wsmux_chr% $(($unit + 128)) 200
1.1 jdolecek 547: ;;
548:
549: ttyEstat)
1.15 lukem 550: mkdev ttyEstat c %wsdisplay_chr% 254
1.1 jdolecek 551: ;;
552:
553: ttyEcfg)
1.15 lukem 554: mkdev ttyEcfg c %wsdisplay_chr% 255
1.1 jdolecek 555: ;;
556:
557: ttyE*)
1.15 lukem 558: unit=${i#ttyE}
559: mkdev ttyE$unit c %wsdisplay_chr% $unit
1.1 jdolecek 560: ;;
561:
562: wsmouse*)
563: unit=${i#wsmouse}
1.15 lukem 564: mkdev wsmouse$unit c %wsmouse_chr% $unit
1.1 jdolecek 565: ;;
566:
567: wskbd*)
568: unit=${i#wskbd}
1.15 lukem 569: mkdev wskbd$unit c %wskbd_chr% $unit
1.1 jdolecek 570: ;;
571:
572: fd)
573: if $nofdesc; then
1.15 lukem 574: makedir fd 755
1.1 jdolecek 575: n=0
1.15 lukem 576: while [ $n -lt 64 ]
577: do
578: mkdev fd/$n c %filedesc_chr% $n 666
1.1 jdolecek 579: n=$(($n + 1))
580: done
581: fi
582: ;;
583:
584: wt*)
585: case $i in
586: wt*) name=wt; unit=${i#wt}; chr=%wt_chr%; blk=%wt_blk%;;
587: esac
588: for sub in $unit $(($unit+8)) $(($unit+16))
589: do
1.15 lukem 590: mkdev $name$sub b $blk $(($sub + 0)) 660 $g_operator
591: mkdev n$name$sub b $blk $(($sub + 4)) 660 $g_operator
592: mkdev r$name$sub c $chr $(($sub + 0)) 660 $g_operator
593: mkdev nr$name$sub c $chr $(($sub + 4)) 660 $g_operator
1.1 jdolecek 594: done
595: ;;
596:
597: md*)
1.4 jdolecek 598: makedisk_minimal md ${i#md} %md_blk% %md_chr%
1.11 hannken 599: ;;
600:
601: fss*)
1.15 lukem 602: case $i in
603: fss*) name=fss; unit=${i#fss}; blk=%fss_blk%; chr=%fss_chr%
604: esac
605: mkdev $name$unit b $blk $unit 660 $g_operator
606: mkdev r$name$unit c $chr $unit 660 $g_operator
1.1 jdolecek 607: ;;
608:
609: ss*)
610: case $i in
611: ss*) name=ss; unit=${i#ss}; chr=%ss_chr%;;
612: esac
1.15 lukem 613: mkdev $name$unit c $chr $(($unit * 16 + 0)) 640 $g_operator
614: mkdev n$name$unit c $chr $(($unit * 16 + 1)) 640 $g_operator
615: mkdev en$name$unit c $chr $(($unit * 16 + 3)) 640 $g_operator
1.1 jdolecek 616: ;;
617:
1.5 jdolecek 618: ccd*|cgd*|raid*|vnd*)
1.1 jdolecek 619: case $i in
1.15 lukem 620: ccd*) name=ccd; unit=${i#ccd}; blk=%ccd_blk%; chr=%ccd_chr%;;
621: cgd*) name=cgd; unit=${i#cgd}; blk=%cgd_blk%; chr=%cgd_chr%;;
622: raid*) name=raid; unit=${i#raid}; blk=%raid_blk%; chr=%raid_chr%;;
623: vnd*) name=vnd; unit=${i#vnd}; blk=%vnd_blk%; chr=%vnd_chr%;;
1.1 jdolecek 624: esac
1.5 jdolecek 625: %MKDISK% $name $unit $blk $chr
626: ;;
627:
628: sd*)
629: name=sd; unit=${i#sd}; blk=%sd_blk%; chr=%sd_chr%
1.1 jdolecek 630: %MKDISK% $name $unit $blk $chr
631: ;;
632:
633: wd*)
634: name=wd; unit=${i#wd}; blk=%wd_blk%; chr=%wd_chr%
635: %MKDISK% $name $unit $blk $chr
636: ;;
637:
638: fd*)
639: name=fd; unit=${i#fd}; blk=%fd_blk%; chr=%fd_chr%
640: %MKDISK% $name $unit $blk $chr
641: ;;
642:
643: ld*)
644: name=ld; unit=${i#ld}; blk=%ld_blk%; chr=%ld_chr%
645: %MKDISK% $name $unit $blk $chr
646: ;;
647:
648: ed*)
649: name=ed; unit=${i#ed}; blk=%ed_blk%; chr=%ed_chr%
650: %MKDISK% $name $unit $blk $chr
651: ;;
652:
653: ofdisk*)
654: name=ofdisk; unit=${i#ofdisk}; blk=%ofdisk_blk%; chr=%ofdisk_chr%
655: %MKDISK% $name $unit $blk $chr
656: ;;
657:
1.15 lukem 658: ttyCY*)
659: name=tyCY; chr=%cy_chr%; off=32; fmt="%03d"
660: unit=${i#t${name}}
661: minor=$(($unit * $off))
662: eminor=$(($minor + $off))
663: while [ $minor -lt $eminor ]
664: do
665: nminor=$(printf $fmt $minor)
666: mkdev t$name$nminor c $chr $(($minor + $dialin )) "" "" $u_uucp
667: mkdev d$name$nminor c $chr $(($minor + $dialout)) "" "" $u_uucp
1.1 jdolecek 668: minor=$(($minor + 1))
669: done
670: ;;
671:
1.15 lukem 672: ttyCZ*)
673: name=tyCZ; chr=%cz_chr%; off=64; fmt="%04d"
674: unit=${i#t${name}}
675: minor=$(($unit * $off))
676: eminor=$(($minor + $off))
677: while [ $minor -lt $eminor ]
678: do
679: nminor=$(printf $fmt $minor)
680: mkdev t$name$nminor c $chr $(($minor + $dialin )) "" "" $u_uucp
681: mkdev d$name$nminor c $chr $(($minor + $dialout)) "" "" $u_uucp
1.1 jdolecek 682: minor=$(($minor + 1))
683: done
684: ;;
685:
1.15 lukem 686:
1.4 jdolecek 687: tty[0-9]|tty0[0-9])
688: # some archs have built-in zstty (major %zstty_chr%) instead
689: # of NS16550; create ttyZ* and hardlink as [dt]ty0*; this
690: # needs to be before com entry, for archs which have both
691: unit=${i#tty}
692: unit=$(($unit + 0))
693: makedev ttyZ${unit}
1.15 lukem 694: lndev ttyZ$unit tty0${unit}
695: lndev dtyZ$unit dty0${unit}
1.4 jdolecek 696: ;;
697:
1.3 jdolecek 698: tty0*|tty1*|tty[0-9])
1.15 lukem 699: unit=${i#tty}
700: ounit=$(printf "%02d" $unit)
701: mkdev tty$ounit c %com_chr% $(($unit + $dialin )) "" "" $u_uucp
702: mkdev dty$ounit c %com_chr% $(($unit + $dialout)) "" "" $u_uucp
1.1 jdolecek 703: ;;
704:
705: ttyC*)
1.15 lukem 706: # some archs call com_chr ttyC traditionally
707: unit=${i#ttyC}; name=ttyC; dname=dtyC; chr=%com_chr%
708: mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp
709: mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp
1.1 jdolecek 710: ;;
711:
712: ttyh*)
1.15 lukem 713: unit=${i#ttyh}; name=ttyh; dname=dtyh; chr=%sabtty_chr%
714: mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp
715: mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp
716: ;;
717:
718: ttyTX*)
719: unit=${i#ttyTX}; name=ttyTX0; dname=dtyTX0; chr=%txcom_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: ttyZ*)
1.15 lukem 725: unit=${i#ttyZ}; name=ttyZ; dname=dtyZ; chr=%zstty_chr%
726: mkdev $name$unit c $chr $(($unit + $dialin )) "" "" $u_uucp
727: mkdev $dname$unit c $chr $(($unit + $dialout)) "" "" $u_uucp
1.1 jdolecek 728: ;;
729:
730: opty)
731: for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f
732: do
733: case $j in
734: [0-9]) jn=$j ;;
735: a) jn=10 ;;
736: b) jn=11 ;;
737: c) jn=12 ;;
738: d) jn=13 ;;
739: e) jn=14 ;;
740: f) jn=15 ;;
741: esac
1.15 lukem 742: mkdev ttyp$j c %pts_chr% $jn 666
743: mkdev ptyp$j c %ptc_chr% $jn 666
1.1 jdolecek 744: done
745: ;;
746:
747: pty*)
748: class=${i#pty}
749: set -- p q r s t u v w x y z P Q R S T
750: if [ "$class" -ge $# ]; then
1.16 lukem 751: warn "$i: pty unit must be between 0 and 15"
1.1 jdolecek 752: continue
753: fi
754: shift $class
755: name=$1
756: if [ "$name" = v ]; then
1.16 lukem 757: warn "$i: pty unit conflicts with console ttyv0 device"
1.1 jdolecek 758: continue
759: fi
760: jn=0
761: unit=$(($class * 16))
762: 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
763: while
764: shift
765: j=$1
766: [ -n "$j" ]
767: do
768: if [ $j = g ]; then
769: unit=$(($unit + $class * 30 + 256 - 16))
770: fi
1.15 lukem 771: mkdev tty$name$j c %pts_chr% $unit 666
772: mkdev pty$name$j c %ptc_chr% $unit 666
1.1 jdolecek 773: unit=$(($unit + 1))
774: done
775: ;;
776:
1.4 jdolecek 777: stic*)
778: unit=${i#stic}
1.15 lukem 779: mkdev stic$unit c %stic_chr% $unit
1.4 jdolecek 780: ;;
781:
1.1 jdolecek 782: st*)
783: case $i in
784: st*) name=st; unit=${i#st}; chr=%st_chr%; blk=%st_blk%;;
785: esac
1.15 lukem 786: mkdev $name$unit b $blk $(($unit * 16 + 0)) 660 $g_operator
787: mkdev n$name$unit b $blk $(($unit * 16 + 1)) 660 $g_operator
788: mkdev e$name$unit b $blk $(($unit * 16 + 2)) 660 $g_operator
789: mkdev en$name$unit b $blk $(($unit * 16 + 3)) 660 $g_operator
790: mkdev r$name$unit c $chr $(($unit * 16 + 0)) 660 $g_operator
791: mkdev nr$name$unit c $chr $(($unit * 16 + 1)) 660 $g_operator
792: mkdev er$name$unit c $chr $(($unit * 16 + 2)) 660 $g_operator
793: mkdev enr$name$unit c $chr $(($unit * 16 + 3)) 660 $g_operator
1.1 jdolecek 794: ;;
795:
796: ses*|ch*|uk*)
797: case $i in
1.15 lukem 798: ch*) name=ch; unit=${i#ch}; chr=%ch_chr%;;
799: uk*) name=uk; unit=${i#uk}; chr=%uk_chr%;;
800: ses*) name=ses; unit=${i#ses}; chr=%ses_chr%;;
1.1 jdolecek 801: esac
1.15 lukem 802: mkdev $name$unit c $chr $unit 640 $g_operator
1.1 jdolecek 803: ;;
804:
1.4 jdolecek 805: cd*)
806: makedisk_minimal cd ${i#cd} %cd_blk% %cd_chr% %
807: ;;
808:
809: mcd*)
810: makedisk_minimal mcd ${i#mcd} %mcd_blk% %mcd_chr%
1.1 jdolecek 811: ;;
812:
813: gdrom*)
1.4 jdolecek 814: makedisk_minimal gdrom ${i#gdrom} %gdrom_blk% %gdrom_chr%
1.1 jdolecek 815: ;;
816:
817: lpt*|lpa*)
818: case $i in
819: lpt*) name=lpt; unit=${i#lpt}; chr=%lpt_chr%; flags=0;;
820: lpa*) name=lpa; unit=${i#lpa}; chr=%lpt_chr%; flags=128;;
821: esac
1.15 lukem 822: mkdev $name$unit c $chr $(($unit + $flags))
1.1 jdolecek 823: ;;
824:
825: bpf*|tun*)
826: case $i in
827: bpf*) name=bpf; unit=${i#bpf}; chr=%bpf_chr%;;
828: tun*) name=tun; unit=${i#tun}; chr=%tun_chr%;;
829: esac
1.15 lukem 830: mkdev $name$unit c $chr $unit
1.1 jdolecek 831: ;;
832:
833: joy*)
834: case $i in
835: joy*) name=joy; unit=${i#joy}; chr=%joy_chr%;;
836: esac
1.15 lukem 837: mkdev $name$unit c $chr $unit
1.1 jdolecek 838: ;;
839:
840: ipl)
1.15 lukem 841: mkdev ipl c %ipl_chr% 0
842: mkdev ipnat c %ipl_chr% 1
843: mkdev ipstate c %ipl_chr% 2
844: mkdev ipauth c %ipl_chr% 3
1.1 jdolecek 845: ;;
846:
847: pf)
1.15 lukem 848: mkdev pf c %pf_chr% 0
1.1 jdolecek 849: ;;
850:
851: crypto)
1.15 lukem 852: mkdev crypto c %crypto_chr% 0 666
1.1 jdolecek 853: ;;
854:
855: speaker)
1.15 lukem 856: mkdev speaker c %spkr_chr% 0
1.1 jdolecek 857: ;;
858:
859: lkm)
1.15 lukem 860: mkdev lkm c %lkm_chr% 0 640 $g_kmem
1.1 jdolecek 861: ;;
862:
863: audio*)
864: unit=${i#audio}
865: audio=audio$unit
866: sound=sound$unit
867: mixer=mixer$unit
868: audioctl=audioctl$unit
1.15 lukem 869: : ${unit:-0}
870: mkdev $sound c %audio_chr% $(($unit + 0)) 666
871: mkdev $audio c %audio_chr% $(($unit + 128)) 666
872: mkdev $mixer c %audio_chr% $(($unit + 16)) 666
873: mkdev $audioctl c %audio_chr% $(($unit + 192)) 666
1.1 jdolecek 874: ;;
875:
876: rmidi*)
877: unit=${i#rmidi}
1.15 lukem 878: mkdev rmidi$unit c %midi_chr% $unit 666
1.1 jdolecek 879: ;;
880:
881: music*)
882: unit=${i#music}
1.15 lukem 883: : ${unit:-0}
884: mkdev music$unit c %sequencer_chr% $(($unit + 0)) 666
885: mkdev sequencer$unit c %sequencer_chr% $(($unit + 128)) 666
1.1 jdolecek 886: ;;
887:
888: radio*)
889: unit=${i#radio}
1.15 lukem 890: : ${unit:-0}
891: mkdev radio$unit c %radio_chr% $unit 666
892: ;;
893:
894: apm)
895: mkdev apm c %apm_chr% 0 644
896: mkdev apmctl c %apm_chr% 8 644
897: ;;
898:
899: apm)
900: # hpcmips uses `apmdev_chr' instead of `apm_chr'
901: mkdev apm c %apmdev_chr% 0 644
902: mkdev apmctl c %apmdev_chr% 8 644
1.4 jdolecek 903: ;;
904:
1.1 jdolecek 905: satlink*)
906: unit=${i#satlink}
1.15 lukem 907: mkdev satlink$unit c %satlink_chr% $unit 444
1.1 jdolecek 908: ;;
909:
910: random)
1.15 lukem 911: mkdev random c %rnd_chr% 0 444
912: mkdev urandom c %rnd_chr% 1 644
1.1 jdolecek 913: ;;
914:
915: cfs*)
916: unit=${i#cfs}
1.15 lukem 917: mkdev cfs$unit c %vcoda_chr% $unit
1.1 jdolecek 918: ;;
919:
920: sysmon)
1.15 lukem 921: mkdev sysmon c %sysmon_chr% 0 644
922: mkdev watchdog c %sysmon_chr% 1 644
923: mkdev power c %sysmon_chr% 2 640
1.1 jdolecek 924: ;;
925:
926: scsibus*)
927: unit=${i#scsibus}
1.15 lukem 928: mkdev scsibus$unit c %scsibus_chr% $unit 644
1.1 jdolecek 929: ;;
930:
931: bktr)
932: makedev bktr0 bktr1
1.15 lukem 933: lndev bktr0 bktr
934: lndev tuner0 tuner
935: lndev vbi0 vbi
1.1 jdolecek 936: ;;
937:
938: bktr*)
939: unit=${i#bktr}
1.15 lukem 940: mkdev bktr$unit c %bktr_chr% $(($unit + 0)) 444
941: mkdev tuner$unit c %bktr_chr% $(($unit + 16)) 444
942: mkdev vbi$unit c %bktr_chr% $(($unit + 32)) 444
1.1 jdolecek 943: ;;
944:
945: iop*)
946: unit=${i#iop}
1.15 lukem 947: mkdev iop$unit c %iop_chr% $unit
1.1 jdolecek 948: ;;
949:
950: mlx*)
951: unit=${i#mlx}
1.15 lukem 952: mkdev mlx$unit c %mlx_chr% $unit
1.1 jdolecek 953: ;;
954:
955: mly*)
956: unit=${i#mly}
1.15 lukem 957: mkdev mly$unit c %mly_chr% $unit
1.1 jdolecek 958: ;;
959:
960: twe*)
961: unit=${i#twe}
1.15 lukem 962: mkdev twe$unit c %twe_chr% $unit
1.1 jdolecek 963: ;;
964:
965: icp*)
966: unit=${i#icp}
1.15 lukem 967: mkdev icp$unit c %icp_chr% $unit
1.1 jdolecek 968: ;;
969:
970: agp*)
971: unit=${i#agp}
1.15 lukem 972: mkdev agp$unit c %agp_chr% $unit 644
973: if [ "$unit" = "0" ]; then
974: lndev agp$unit agpgart
975: fi
1.1 jdolecek 976: ;;
977:
978: pci*)
979: unit=${i#pci}
1.15 lukem 980: mkdev pci$unit c %pci_chr% $unit 644
1.1 jdolecek 981: ;;
982:
983: dpti*)
984: unit=${i#dpti}
1.15 lukem 985: mkdev dpti$unit c %dpti_chr% $unit
1.1 jdolecek 986: ;;
987:
988: dpt*)
989: unit=${i#dpt}
1.15 lukem 990: mkdev dpt$unit c %dpt_chr% $unit
1.1 jdolecek 991: ;;
992:
993: altq)
1.15 lukem 994: makedir altq 755
1.1 jdolecek 995: unit=0
1.15 lukem 996: for dev in altq cbq wfq afm fifoq red rio localq hfsc cdnr blue priq
997: do
998: mkdev altq/$dev c %altq_chr% $unit 644
1.1 jdolecek 999: unit=$(($unit + 1))
1000: done
1001: ;;
1002:
1003: isdn)
1.15 lukem 1004: mkdev isdn c %isdn_chr% 0
1.1 jdolecek 1005: ;;
1006:
1007: isdnctl)
1.15 lukem 1008: mkdev isdnctl c %isdnctl_chr% 0
1.1 jdolecek 1009: ;;
1010:
1011: isdnbchan*)
1012: unit=${i#isdnbchan}
1.15 lukem 1013: mkdev isdnbchan$unit c %isdnbchan_chr% $unit
1.1 jdolecek 1014: ;;
1015:
1016: isdnteld*)
1017: unit=${i#isdnteld}
1.15 lukem 1018: mkdev isdnteld$unit c %isdntel_chr% $(($unit + 64))
1.1 jdolecek 1019: ;;
1020:
1021: isdntel*)
1022: unit=${i#isdntel}
1.15 lukem 1023: mkdev isdntel$unit c %isdntel_chr% $unit
1.1 jdolecek 1024: ;;
1025:
1026: isdntrc*)
1027: unit=${i#isdntrc}
1.15 lukem 1028: mkdev isdntrc$unit c %isdntrc_chr% $unit
1.1 jdolecek 1029: ;;
1030:
1031: vmegen)
1032: makedev vmegen0 vmegen1 vmegen2 vmegen3
1033: ;;
1034:
1035: vmegen*)
1036: unit=${i#vmegen}
1.15 lukem 1037: mkdev vmegen$unit c %vmegeneric_chr% $(($unit * 16 + 0))
1.1 jdolecek 1038: ;;
1039:
1040: wsfont)
1.15 lukem 1041: mkdev wsfont c %wsfont_chr% 0
1.1 jdolecek 1042: ;;
1043:
1044: cir*)
1045: unit=${i#cir}
1.15 lukem 1046: mkdev cir$unit c %cir_chr% $unit 666
1.1 jdolecek 1047: ;;
1048:
1049: irframe*)
1050: unit=${i#irframe}
1.15 lukem 1051: mkdev irframe$unit c %irframe_chr% $unit
1.1 jdolecek 1052: ;;
1053:
1054: fcom*)
1055: unit=${i#fcom}
1.15 lukem 1056: mkdev fcom$unit c %fcom_chr% $unit "" "" $u_uucp
1.1 jdolecek 1057: ;;
1058:
1059: beep)
1.15 lukem 1060: mkdev beep c %beep_chr% 0
1.1 jdolecek 1061: ;;
1062:
1063: openfirm)
1.15 lukem 1064: mkdev openfirm c %openfirm_chr% 0 444
1.1 jdolecek 1065: ;;
1066:
1067: nvram)
1.15 lukem 1068: mkdev nvram c %nvram_chr% 0 644
1.1 jdolecek 1069: ;;
1070:
1071: rtc)
1.15 lukem 1072: mkdev rtc c %rtc_chr% 0 644
1.1 jdolecek 1073: ;;
1074:
1075: clockctl)
1.15 lukem 1076: mkdev clockctl c %clockctl_chr% 0 660 $g_ntpd
1.1 jdolecek 1077: ;;
1078:
1079: nsmb)
1080: makedev nsmb0 nsmb1 nsmb2 nsmb3
1081: ;;
1082:
1083: nsmb*)
1084: unit=${i#nsmb}
1.15 lukem 1085: mkdev nsmb$unit c %nsmb_chr% $unit 644
1.1 jdolecek 1086: ;;
1087:
1088: systrace)
1.15 lukem 1089: mkdev systrace c %systrace_chr% 0 644
1.1 jdolecek 1090: ;;
1091:
1092: kttcp)
1.15 lukem 1093: mkdev kttcp c %kttcp_chr% 0
1.1 jdolecek 1094: ;;
1095:
1096: dmoverio)
1.15 lukem 1097: mkdev dmoverio c %dmoverio_chr% 0 644
1.1 jdolecek 1098: ;;
1099:
1100: veriexec)
1.15 lukem 1101: mkdev veriexec c %veriexec_chr% 0 644
1.1 jdolecek 1102: ;;
1103:
1104: ttyv*)
1.15 lukem 1105: unit=${i#ttyv}
1106: mkdev ttyv$unit c %pc_chr% $unit
1.1 jdolecek 1107: ;;
1108:
1.15 lukem 1109: # arm, acorn32
1.4 jdolecek 1110: ttyv*)
1.15 lukem 1111: unit=${i#ttyv}
1112: mkdev ttyv$unit c %physcon_chr% $unit
1.4 jdolecek 1113: ;;
1114:
1.1 jdolecek 1115: arcpp*)
1.15 lukem 1116: unit=${i#arcpp}
1117: mkdev arcpp$unit c %arcpp_chr% $unit
1.1 jdolecek 1118: ;;
1119:
1120: par*)
1.15 lukem 1121: unit=${i#par}
1.1 jdolecek 1122: case $unit in
1123: 0)
1.15 lukem 1124: mkdev par$unit c %par_chr% $unit
1.1 jdolecek 1125: ;;
1126: *)
1.16 lukem 1127: warn "bad unit for par in: $i"
1.1 jdolecek 1128: ;;
1129: esac
1130: ;;
1131:
1132: ite*|ttye*)
1.4 jdolecek 1133: case $i in
1134: ite*) unit=${i#ite};;
1135: ttye*) unit=${i#ttye};;
1136: esac
1.15 lukem 1137: mkdev ttye$unit c %ite_chr% $unit
1.1 jdolecek 1138: ;;
1139:
1140: pms*)
1.4 jdolecek 1141: unit=${i#pms}
1.15 lukem 1142: mkdev pms$unit c %opms_chr% $unit
1.1 jdolecek 1143: ;;
1144:
1145: qms*)
1146: unit=${i#qms}
1.15 lukem 1147: mkdev qms$unit c %qms_chr% $unit
1.1 jdolecek 1148: ;;
1149:
1150: lms*)
1151: unit=${i#lms}
1.15 lukem 1152: mkdev lms$unit c %lms_chr% $unit
1.1 jdolecek 1153: ;;
1154:
1155: mms*)
1156: unit=${i#mms}
1.15 lukem 1157: mkdev mms$unit c %mms_chr% $unit
1.1 jdolecek 1158: ;;
1159:
1160: mouse-*)
1161: case $i in
1.15 lukem 1162: mouse-pms*) name=pms ;;
1163: mouse-qms*) name=qms ;;
1.1 jdolecek 1164: esac
1.15 lukem 1165: unit=${i#mouse-${name}}
1166: lndev $name$unit mouse
1.1 jdolecek 1167: ;;
1168:
1169: kbd)
1.15 lukem 1170: mkdev kbd c %kbd_chr% 0
1.1 jdolecek 1171: ;;
1172:
1.4 jdolecek 1173: kbdctl)
1.15 lukem 1174: mkdev kbdctl c %kbd_chr% 1
1.4 jdolecek 1175: ;;
1176:
1177: vidcconsole0)
1.15 lukem 1178: mkdev vidcconsole0 c %vidcconsole_chr% 0 640
1.4 jdolecek 1179: ;;
1180:
1.1 jdolecek 1181: view*)
1.15 lukem 1182: unit=${i#view}
1183: mkdev view$unit c %view_chr% $unit 666
1.1 jdolecek 1184: ;;
1185:
1186: mouse*)
1.15 lukem 1187: unit=${i#mouse}
1.1 jdolecek 1188: case $unit in
1189: 0|1)
1.15 lukem 1190: mkdev mouse$unit c %ms_chr% $unit 666
1191: if [ $unit = 0 ]; then
1192: lndev mouse$unit mouse
1.1 jdolecek 1193: fi
1194: ;;
1195: *)
1.16 lukem 1196: warn "bad unit for mouse in: $i"
1.1 jdolecek 1197: ;;
1198: esac
1199: ;;
1200:
1201: panel)
1.15 lukem 1202: mkdev panel0 c %panel_chr% 0 660
1.1 jdolecek 1203: ;;
1204:
1205: ipty)
1.15 lukem 1206: mkdev ttyp0 c %pts_chr% 0 666
1207: mkdev ttyp1 c %pts_chr% 1 666
1208: mkdev ptyp0 c %ptc_chr% 0 666
1209: mkdev ptyp1 c %ptc_chr% 1 666
1.1 jdolecek 1210: ;;
1211:
1212: grf*)
1213: unit=${i#grf}
1.15 lukem 1214: mkdev grf$unit c %grf_chr% $unit 666
1.1 jdolecek 1215: ;;
1216:
1217: etvme)
1.15 lukem 1218: mkdev etvme c %et_chr% 0
1.1 jdolecek 1219: ;;
1220:
1221: leo*)
1222: unit=${i#leo}
1.15 lukem 1223: mkdev leo$unit c %leo_chr% $unit
1.1 jdolecek 1224: ;;
1225:
1226: scif*)
1.15 lukem 1227: unit=${i#scif}
1228: mkdev scif$unit c %scif_chr% $unit "" "" $u_uucp
1.1 jdolecek 1229: ;;
1230:
1231: sci*)
1.15 lukem 1232: unit=${i#sci}
1233: mkdev sci$unit c %sci_chr% $unit "" "" $u_uucp
1.1 jdolecek 1234: ;;
1235:
1236: maple*)
1237: case $i in
1238: mapleA*) name="mapleA"; unit=0;;
1239: mapleB*) name="mapleB"; unit=1;;
1240: mapleC*) name="mapleC"; unit=2;;
1241: mapleD*) name="mapleD"; unit=3;;
1242: esac
1243: subunit=${i#$name}
1.15 lukem 1244: mkdev $name$subunit c %maple_chr% $(($unit * 8 + 0$subunit))
1.1 jdolecek 1245: ;;
1246:
1247: mmem*)
1.15 lukem 1248: unit=${i#mmem}
1.1 jdolecek 1249: for pt in 0 # 1 2 3 4 ... 255
1250: do
1.15 lukem 1251: # mkdev mmem${unit}.${pt}a b %mmem_blk% $(($unit * 4096 + $pt * 16 + 0)) 640 $g_operator
1252: mkdev mmem${unit}.${pt}c b %mmem_blk% $(($unit * 4096 + $pt * 16 + 2)) 640 $g_operator
1253: # mkdev rmmem${unit}.${pt}a c %mmem_chr% $(($unit * 4096 + $pt * 16 + 0)) 640 $g_operator
1254: mkdev rmmem${unit}.${pt}c c %mmem_chr% $(($unit * 4096 + $pt * 16 + 2)) 640 $g_operator
1.1 jdolecek 1255: done
1256: ;;
1257:
1258: mlcd*)
1.15 lukem 1259: unit=${i#mlcd}
1.1 jdolecek 1260: for pt in 0 # 1 2 3 4 ... 255
1261: do
1.15 lukem 1262: mkdev mlcd${unit}.${pt} c %mlcd_chr% $(($unit * 256 + $pt)) 640 $g_operator
1.1 jdolecek 1263: done
1264: ;;
1265:
1266: ixpcom*)
1267: unit=${i#ixpcom}
1.15 lukem 1268: mkdev ixpcom$unit c %ixpcom_chr% $unit "" "" $u_uucp
1.1 jdolecek 1269: ;;
1270:
1271: ucbsnd)
1.15 lukem 1272: mkdev ucbsnd c %ucbsnd_chr% 0 666
1.1 jdolecek 1273: ;;
1274:
1275: adb)
1.15 lukem 1276: mkdev adb c %aed_chr% 0 666
1.1 jdolecek 1277: ;;
1278:
1279: asc*)
1280: unit=${i#asc}
1.15 lukem 1281: mkdev asc$unit c %asc_chr% $unit 666
1.1 jdolecek 1282: ;;
1283:
1284: bwtwo*)
1285: unit=${i#bwtwo}
1.15 lukem 1286: mkdev bwtwo$unit c %bwtwo_chr% $unit 666
1.1 jdolecek 1287: ;;
1288:
1289: cgtwo*)
1290: unit=${i#cgtwo}
1.15 lukem 1291: mkdev cgtwo$unit c %cgtwo_chr% $unit 666
1.1 jdolecek 1292: ;;
1293:
1294: cgthree*)
1295: unit=${i#cgthree}
1.15 lukem 1296: mkdev cgthree$unit c %cgthree_chr% $unit 666
1.1 jdolecek 1297: ;;
1298:
1299: cgfour*)
1300: unit=${i#cgfour}
1.15 lukem 1301: mkdev cgfour$unit c %cgfour_chr% $unit 666
1.1 jdolecek 1302: ;;
1303:
1304: cgsix*)
1305: unit=${i#cgsix}
1.15 lukem 1306: mkdev cgsix$unit c %cgsix_chr% $unit 666
1.1 jdolecek 1307: ;;
1308:
1309: cgeight*)
1310: unit=${i#cgeight}
1.15 lukem 1311: mkdev cgeight$unit c %cgeight_chr% $unit 666
1.1 jdolecek 1312: ;;
1313:
1314: tcx*)
1315: unit=${i#tcx}
1.15 lukem 1316: mkdev tcx$unit c %tcx_chr% $unit 666
1.1 jdolecek 1317: ;;
1318:
1319: xd*|xy*)
1320: case $i in
1321: xd*) name=xd; unit=${i#xd}; blk=%xd_blk%; chr=%xd_chr%;;
1322: xy*) name=xy; unit=${i#xy}; blk=%xy_blk%; chr=%xy_chr%;;
1323: esac
1324: %MKDISK% $name $unit $blk $chr
1325: ;;
1326:
1327: magma*)
1328: unit=${i#magma}
1.15 lukem 1329: if [ 0$unit -gt 3 ]; then
1.16 lukem 1330: warn "bad unit for $i: $unit"
1.1 jdolecek 1331: break
1332: fi
1333: for j in 0 1 2 3 4 5 6 7 8 9 a b c d e f
1334: do
1335: case $j in
1336: [0-9]) jn=$j ;;
1337: a) jn=10 ;;
1338: b) jn=11 ;;
1339: c) jn=12 ;;
1340: d) jn=13 ;;
1341: e) jn=14 ;;
1342: f) jn=15 ;;
1343: esac
1.15 lukem 1344: mkdev tty$unit$j c %mtty_chr% $(($unit * 64 + $jn))
1.1 jdolecek 1345: done
1.15 lukem 1346: mkdev bpp${unit}0 c %mbpp_chr% $(($unit * 64 + 0))
1347: mkdev bpp${unit}1 c %mbpp_chr% $(($unit * 64 + 1))
1.1 jdolecek 1348: ;;
1349:
1350: clcd*)
1351: unit=${i#clcd}
1.15 lukem 1352: if [ 0$unit -gt 7 ]; then
1.16 lukem 1353: warn "bad unit for $i: $unit"
1.1 jdolecek 1354: break
1355: fi
1356: for j in 0 1 2 3 4 5 6 7
1357: do
1.15 lukem 1358: mkdev ttyA$unit$j c %clcd_chr% $(($unit * 8 + $j + $dialin)) "" "" $u_uucp
1359: mkdev dtyA$unit$j c %clcd_chr% $(($unit * 8 + $j + $dialout)) "" "" $u_uucp
1.1 jdolecek 1360: done
1361: ;;
1362:
1363: bpp*)
1364: unit=${i#bpp}
1.15 lukem 1365: mkdev bpp$unit c %bpp_chr% $(($unit + 0))
1.1 jdolecek 1366: ;;
1367:
1368: tctrl*)
1369: unit=${i#tctrl}
1.15 lukem 1370: mkdev tctrl$unit c %tctrl_chr% $unit 666
1.1 jdolecek 1371: ;;
1372:
1373: bmd*)
1.15 lukem 1374: unit=${i#bmd}
1375: mkdev bmd${unit}a b %bmd_blk% $(($unit * 8 + 0)) 640 $g_operator
1376: mkdev bmd${unit}c b %bmd_blk% $(($unit * 8 + 2)) 640 $g_operator
1377: mkdev rbmd${unit}a c %bmd_chr% $(($unit * 8 + 0)) 640 $g_operator
1378: mkdev rbmd${unit}c c %bmd_chr% $(($unit * 8 + 2)) 640 $g_operator
1.1 jdolecek 1379: ;;
1380:
1381: sram)
1.15 lukem 1382: mkdev sram c %sram_chr% 0 644
1.1 jdolecek 1383: ;;
1384:
1385: pow*)
1386: unit=${i#pow}
1387: case $unit in
1388: 0|1)
1.15 lukem 1389: mkdev pow${unit} c %pow_chr% ${unit} 644
1390: if [ $unit = 0 ]; then
1391: lndev pow${unit} pow
1.1 jdolecek 1392: fi
1393: ;;
1394: *)
1.16 lukem 1395: warn "bad unit for pow in: $i"
1.1 jdolecek 1396: ;;
1397: esac
1398: ;;
1399:
1400: ttyS*)
1401: unit=${i#ttyS}
1.15 lukem 1402: mkdev ttyS$unit c %sacom_chr% $(($unit + $dialin )) "" "" $u_uucp
1403: mkdev dtyS$unit c %sacom_chr% $(($unit + $dialout)) "" "" $u_uucp
1.1 jdolecek 1404: ;;
1405:
1406: midevend)
1407: %MI_DEVICES_END%
1408: local)
1409: if [ -f "$0.local" ]; then
1410: umask 0
1411: sh $0.local all
1412: umask 077
1413: fi
1414: ;;
1415:
1416: *)
1.16 lukem 1417: warn "$i: unknown device"
1.1 jdolecek 1418: ;;
1419:
1420: esac
1421: done
1422:
1423: }
1424:
1.15 lukem 1425:
1.1 jdolecek 1426: # three variants of disk partitions - max 8, max 16, max 16 with highpartoffset
1.3 jdolecek 1427: # hack; only the one used by port is retained in final MAKEDEV script
1.1 jdolecek 1428: # routine is called as:
1429: # makedisk name unit blk chr
1.15 lukem 1430: makedisk_p8()
1431: {
1.1 jdolecek 1432: name="$1"; unit="$2"; blk="$3"; chr="$4"
1433:
1.15 lukem 1434: mkdev ${name}${unit}a b $blk $(($unit * 8 + 0)) 640 $g_operator
1435: mkdev ${name}${unit}b b $blk $(($unit * 8 + 1)) 640 $g_operator
1436: mkdev ${name}${unit}c b $blk $(($unit * 8 + 2)) 640 $g_operator
1437: mkdev ${name}${unit}d b $blk $(($unit * 8 + 3)) 640 $g_operator
1438: mkdev ${name}${unit}e b $blk $(($unit * 8 + 4)) 640 $g_operator
1439: mkdev ${name}${unit}f b $blk $(($unit * 8 + 5)) 640 $g_operator
1440: mkdev ${name}${unit}g b $blk $(($unit * 8 + 6)) 640 $g_operator
1441: mkdev ${name}${unit}h b $blk $(($unit * 8 + 7)) 640 $g_operator
1442: mkdev r${name}${unit}a c $chr $(($unit * 8 + 0)) 640 $g_operator
1443: mkdev r${name}${unit}b c $chr $(($unit * 8 + 1)) 640 $g_operator
1444: mkdev r${name}${unit}c c $chr $(($unit * 8 + 2)) 640 $g_operator
1445: mkdev r${name}${unit}d c $chr $(($unit * 8 + 3)) 640 $g_operator
1446: mkdev r${name}${unit}e c $chr $(($unit * 8 + 4)) 640 $g_operator
1447: mkdev r${name}${unit}f c $chr $(($unit * 8 + 5)) 640 $g_operator
1448: mkdev r${name}${unit}g c $chr $(($unit * 8 + 6)) 640 $g_operator
1449: mkdev r${name}${unit}h c $chr $(($unit * 8 + 7)) 640 $g_operator
1.1 jdolecek 1450: }
1.15 lukem 1451:
1452: makedisk_p16()
1453: {
1.1 jdolecek 1454: name="$1"; unit="$2"; blk="$3"; chr="$4"
1455:
1.15 lukem 1456: mkdev ${name}${unit}a b $blk $(($unit * 16 + 0)) 640 $g_operator
1457: mkdev ${name}${unit}b b $blk $(($unit * 16 + 1)) 640 $g_operator
1458: mkdev ${name}${unit}c b $blk $(($unit * 16 + 2)) 640 $g_operator
1459: mkdev ${name}${unit}d b $blk $(($unit * 16 + 3)) 640 $g_operator
1460: mkdev ${name}${unit}e b $blk $(($unit * 16 + 4)) 640 $g_operator
1461: mkdev ${name}${unit}f b $blk $(($unit * 16 + 5)) 640 $g_operator
1462: mkdev ${name}${unit}g b $blk $(($unit * 16 + 6)) 640 $g_operator
1463: mkdev ${name}${unit}h b $blk $(($unit * 16 + 7)) 640 $g_operator
1464: mkdev ${name}${unit}i b $blk $(($unit * 16 + 8)) 640 $g_operator
1465: mkdev ${name}${unit}j b $blk $(($unit * 16 + 9)) 640 $g_operator
1466: mkdev ${name}${unit}k b $blk $(($unit * 16 + 10)) 640 $g_operator
1467: mkdev ${name}${unit}l b $blk $(($unit * 16 + 11)) 640 $g_operator
1468: mkdev ${name}${unit}m b $blk $(($unit * 16 + 12)) 640 $g_operator
1469: mkdev ${name}${unit}n b $blk $(($unit * 16 + 13)) 640 $g_operator
1470: mkdev ${name}${unit}o b $blk $(($unit * 16 + 14)) 640 $g_operator
1471: mkdev ${name}${unit}p b $blk $(($unit * 16 + 15)) 640 $g_operator
1472: mkdev r${name}${unit}a c $chr $(($unit * 16 + 0)) 640 $g_operator
1473: mkdev r${name}${unit}b c $chr $(($unit * 16 + 1)) 640 $g_operator
1474: mkdev r${name}${unit}c c $chr $(($unit * 16 + 2)) 640 $g_operator
1475: mkdev r${name}${unit}d c $chr $(($unit * 16 + 3)) 640 $g_operator
1476: mkdev r${name}${unit}e c $chr $(($unit * 16 + 4)) 640 $g_operator
1477: mkdev r${name}${unit}f c $chr $(($unit * 16 + 5)) 640 $g_operator
1478: mkdev r${name}${unit}g c $chr $(($unit * 16 + 6)) 640 $g_operator
1479: mkdev r${name}${unit}h c $chr $(($unit * 16 + 7)) 640 $g_operator
1480: mkdev r${name}${unit}i c $chr $(($unit * 16 + 8)) 640 $g_operator
1481: mkdev r${name}${unit}j c $chr $(($unit * 16 + 9)) 640 $g_operator
1482: mkdev r${name}${unit}k c $chr $(($unit * 16 + 10)) 640 $g_operator
1483: mkdev r${name}${unit}l c $chr $(($unit * 16 + 11)) 640 $g_operator
1484: mkdev r${name}${unit}m c $chr $(($unit * 16 + 12)) 640 $g_operator
1485: mkdev r${name}${unit}n c $chr $(($unit * 16 + 13)) 640 $g_operator
1486: mkdev r${name}${unit}o c $chr $(($unit * 16 + 14)) 640 $g_operator
1487: mkdev r${name}${unit}p c $chr $(($unit * 16 + 15)) 640 $g_operator
1.1 jdolecek 1488: }
1.15 lukem 1489:
1490: makedisk_p16high()
1491: {
1492: ho=524280 # offset for partition 9 to 16
1.1 jdolecek 1493: name="$1"; unit="$2"; blk="$3"; chr="$4"
1494:
1.15 lukem 1495: mkdev ${name}${unit}a b $blk $(($unit * 8 + 0)) 640 $g_operator
1496: mkdev ${name}${unit}b b $blk $(($unit * 8 + 1)) 640 $g_operator
1497: mkdev ${name}${unit}c b $blk $(($unit * 8 + 2)) 640 $g_operator
1498: mkdev ${name}${unit}d b $blk $(($unit * 8 + 3)) 640 $g_operator
1499: mkdev ${name}${unit}e b $blk $(($unit * 8 + 4)) 640 $g_operator
1500: mkdev ${name}${unit}f b $blk $(($unit * 8 + 5)) 640 $g_operator
1501: mkdev ${name}${unit}g b $blk $(($unit * 8 + 6)) 640 $g_operator
1502: mkdev ${name}${unit}h b $blk $(($unit * 8 + 7)) 640 $g_operator
1503: mkdev ${name}${unit}i b $blk $(($unit * 8 + $ho + 8)) 640 $g_operator
1504: mkdev ${name}${unit}j b $blk $(($unit * 8 + $ho + 9)) 640 $g_operator
1505: mkdev ${name}${unit}k b $blk $(($unit * 8 + $ho + 10)) 640 $g_operator
1506: mkdev ${name}${unit}l b $blk $(($unit * 8 + $ho + 11)) 640 $g_operator
1507: mkdev ${name}${unit}m b $blk $(($unit * 8 + $ho + 12)) 640 $g_operator
1508: mkdev ${name}${unit}n b $blk $(($unit * 8 + $ho + 13)) 640 $g_operator
1509: mkdev ${name}${unit}o b $blk $(($unit * 8 + $ho + 14)) 640 $g_operator
1510: mkdev ${name}${unit}p b $blk $(($unit * 8 + $ho + 15)) 640 $g_operator
1511: mkdev r${name}${unit}a c $chr $(($unit * 8 + 0)) 640 $g_operator
1512: mkdev r${name}${unit}b c $chr $(($unit * 8 + 1)) 640 $g_operator
1513: mkdev r${name}${unit}c c $chr $(($unit * 8 + 2)) 640 $g_operator
1514: mkdev r${name}${unit}d c $chr $(($unit * 8 + 3)) 640 $g_operator
1515: mkdev r${name}${unit}e c $chr $(($unit * 8 + 4)) 640 $g_operator
1516: mkdev r${name}${unit}f c $chr $(($unit * 8 + 5)) 640 $g_operator
1517: mkdev r${name}${unit}g c $chr $(($unit * 8 + 6)) 640 $g_operator
1518: mkdev r${name}${unit}h c $chr $(($unit * 8 + 7)) 640 $g_operator
1519: mkdev r${name}${unit}i c $chr $(($unit * 8 + $ho + 8)) 640 $g_operator
1520: mkdev r${name}${unit}j c $chr $(($unit * 8 + $ho + 9)) 640 $g_operator
1521: mkdev r${name}${unit}k c $chr $(($unit * 8 + $ho + 10)) 640 $g_operator
1522: mkdev r${name}${unit}l c $chr $(($unit * 8 + $ho + 11)) 640 $g_operator
1523: mkdev r${name}${unit}m c $chr $(($unit * 8 + $ho + 12)) 640 $g_operator
1524: mkdev r${name}${unit}n c $chr $(($unit * 8 + $ho + 13)) 640 $g_operator
1525: mkdev r${name}${unit}o c $chr $(($unit * 8 + $ho + 14)) 640 $g_operator
1526: mkdev r${name}${unit}p c $chr $(($unit * 8 + $ho + 15)) 640 $g_operator
1.4 jdolecek 1527: }
1528:
1529: # make only the very few basic disk device nodes - 'a' partition
1530: # and raw partition
1.15 lukem 1531: makedisk_minimal()
1532: {
1.4 jdolecek 1533: name=$1; unit=$2; blk=$3; chr=$4
1534: doff=%DISKMINOROFFSET%
1.15 lukem 1535: ro=%RAWDISK_OFF%
1536: rn=%RAWDISK_NAME%
1.4 jdolecek 1537:
1.15 lukem 1538: mkdev ${name}${unit}a b $blk $(($unit * $doff + 0)) 640 $g_operator
1539: mkdev ${name}${unit}$rn b $blk $(($unit * $doff + $ro)) 640 $g_operator
1540: mkdev r${name}${unit}a c $chr $(($unit * $doff + 0)) 640 $g_operator
1541: mkdev r${name}${unit}$rn c $chr $(($unit * $doff + $ro)) 640 $g_operator
1.1 jdolecek 1542: }
1543:
1544: makedev $*
CVSweb <webmaster@jp.NetBSD.org>