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