Annotation of src/etc/MAKEDEV.common, Revision 1.56
1.56 ! miod 1: vers(a, {-$OpenBSD: MAKEDEV.common,v 1.55 2011/06/26 23:28:23 tedu Exp $-})dnl
1.24 todd 2: dnl
3: dnl Copyright (c) 2001-2006 Todd T. Fries <todd@OpenBSD.org>
4: dnl
5: dnl Permission to use, copy, modify, and distribute this software for any
6: dnl purpose with or without fee is hereby granted, provided that the above
7: dnl copyright notice and this permission notice appear in all copies.
8: dnl
9: dnl THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10: dnl WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11: dnl MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12: dnl ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13: dnl WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14: dnl ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15: dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1.1 miod 16: dnl
17: dnl Common device definitions.
18: dnl
19: dnl This file contains the MI device definitions (as well as some MD
20: dnl definitions not cleaned up yet...)
21: dnl
22: dnl Diversions: (upon termination, concatenated output queues)
23: dnl
24: dnl 0 - very top
25: dnl 1 - descriptions of devices
26: dnl 2 - init of script, function definitions, etc
27: dnl 3 - beginning of global recursive R() function
28: dnl 7 - body of MAKEDEV, device creations, etc
29: dnl 9 - end
30: dnl
31: dnl Diversions 2, 3 and 7 are not filled when generating the manual page.
32: dnl
33: dnl HOW TO ADD A DEVICE:
34: dnl
35: dnl In this file, you must use at least two macros:
36: dnl
37: dnl Use '__devitem(uniqueid, name-pattern, description)' to create an entry
38: dnl in the description at the top of the generated MAKEDEV file:
39: dnl
40: dnl __devitem(sca, sca*, Sugar Generic device)dnl
41: dnl __devitem(cry, crypto, hardware crypto access driver)dnl
42: dnl
43: dnl This is ultimately shown as:
44: dnl
45: dnl # sca* Sugar Generic device
46: dnl # crypto hardware crypto access driver
47: dnl
48: dnl Use '_mkdev(uniqueid, shell-pattern, {-shell-script-})dnl' to create
49: dnl a shell script fragment used to 'create' the device (be sure to match
50: dnl the uniqueid from above):
51: dnl
52: dnl _mkdev(sca, sca*, {-M sca$U c major_sca_c $U
53: dnl M rsca$U b major_sca_b Add($U, 128)-})dnl
54: dnl _mkdev(cry, crypto, {-M crypto c major_cry_c 0-})dnl
55: dnl
56: dnl This is ultimately expanded into:
57: dnl
58: dnl sca*)
59: dnl M sca$U c 24 $U
60: dnl M sca$U b 42 $(($U+128))
61: dnl ;;
62: dnl
63: dnl crypto)
64: dnl M crypto c 47 0
65: dnl ;;
66: dnl
67: dnl In the MAKEDEV.md file, add a '_DEV(uniqueid, charmajor, blockmajor)'
68: dnl entry:
69: dnl
70: dnl _DEV(sca, 24, 42)
71: dnl _DEV(cry, 47)
72: dnl
73: dnl Final step is to use the 'target/twrget' macros to have the 'all)' target
74: dnl generate one or more device(s). Usage of 'target/twrget' is:
75: dnl target(target_name, device_name [, append_string ] .. )
76: dnl twrget(target_name, uniqueid, device_name, [, append_string ] .. )
77: dnl
78: dnl target_name a unique name that later is used as an argument to
79: dnl 'show_target()' (which expands all devices for a
80: dnl given 'target_name').
81: dnl uniqueid same as 'uniqueid' above
82: dnl device_name string representing the device to be mknod'ed
83: dnl append_string for each append_string, `device_name' is prepended
84: dnl
85: dnl Note: 'target(a,b,c)' is equivalent to 'twrget(a,b,b,c)'
86: dnl
87: dnl
88: dnl For a short example:
89: dnl
90: dnl target(all, std)dnl
91: dnl target(all, sca, 0, 1, 2, 3)dnl
92: dnl twrget(all, cry, crypto)dnl
93: dnl
94: dnl would expand to:
95: dnl
96: dnl all)
97: dnl R std sca0 sca1 sca2 sca3 crypto
98: dnl ;;
99: dnl
100: dnl presuming '_DEV(sca, ?, ?)' and '_DEV(std)' were in the MAKEDEV.md file.
101: dnl
102: dnl
103: dnl Everything is 'automatically' added to 'MAKEDEV' based on whether or
104: dnl not the '_DEV()' entry has a corresponding _mkdev() and __devitem()
105: dnl entry in MAKEDEV.mi (this file).
106: dnl
107: dnl Note: be very wary of adding whitespace, carriage returns, or not
108: dnl finishing a macro with ')dnl' .. otherwise, extra blank lines show up
109: dnl in the output.
110: dnl
111: dnl TODO:
112: dnl
113: dnl make a 'disktgt' macro that automatically does:
114: dnl disktgt(rd, {-rd-})
115: dnl
116: dnl target(all,rd,0)
117: dnl target(ramd,rd,0)
118: dnl disk_q(rd)
119: dnl __devitem(rd, {-rd*-}, {-rd-})dnl
120: dnl
121: dnl Note: not all disks are generated in 'all)'. (e.g. vax has a lot of
122: dnl disks that are not generated by 'all)')
123: dnl
1.24 todd 124: divert(1)dnl
1.1 miod 125: twrget(all, fdesc, fd)dnl
126: target(all, st, 0, 1)dnl
127: target(all, std)dnl
128: target(all, raid, 0, 1, 2, 3)dnl
129: target(all, ra, 0, 1, 2, 3)dnl
130: target(all, rx, 0, 1)dnl
131: target(all, wd, 0, 1, 2, 3)dnl
132: target(all, xd, 0, 1, 2, 3)dnl
133: target(all, systrace)dnl
134: target(all, pctr)dnl
135: target(all, pctr0)dnl
136: target(all, pf)dnl
137: twrget(all, cry, crypto)dnl
138: target(all, apm)dnl
1.18 tholo 139: target(all, acpi)dnl
1.1 miod 140: twrget(all, tth, ttyh, 0, 1)dnl
141: target(all, ttyA, 0, 1)dnl
142: target(all, ttyB, 0, 1, 2, 3, 4, 5)dnl
143: twrget(all, attyB, ttyB, 0, 1, 2, 3, 4)dnl
144: twrget(all, mac_tty0, tty0, 0, 1)dnl
145: twrget(all, tzs, tty, a, b, c, d)dnl
146: twrget(all, czs, cua, a, b, c, d)dnl
147: target(all, ttyc, 0, 1, 2, 3, 4, 5, 6, 7)dnl
148: twrget(all, com, tty0, 0, 1, 2, 3)dnl
149: target(all, lkm)dnl
150: twrget(all, mmcl, mmclock)dnl
151: target(all, lpt, 0, 1, 2)dnl
152: twrget(all, lpt, lpa, 0, 1, 2)dnl
153: target(all, joy, 0, 1)dnl
154: twrget(all, rnd, random)dnl
155: target(all, uk, 0)dnl
1.41 jakemsr 156: twrget(all, au, audio, 0, 1, 2)dnl
1.50 mglocker 157: twrget(all, vi, video, 0, 1)dnl
1.1 miod 158: twrget(all, speak, speaker)dnl
159: target(all, asc, 0)dnl
160: target(all, music, 0)dnl
161: target(all, radio, 0)dnl
162: target(all, tuner, 0)dnl
163: target(all, rmidi, 0, 1, 2, 3, 4, 5, 6, 7)dnl
1.4 deraadt 164: target(all, uall)dnl
1.1 miod 165: target(all, iop, 0, 1)dnl
1.31 kettenis 166: target(all, pci, 0, 1, 2, 3)dnl
1.1 miod 167: twrget(all, wsmouse, wscons)dnl
168: target(all, par, 0)dnl
169: target(all, apci, 0)dnl
170: target(all, ppi, 0)dnl
171: target(all, local)dnl
172: target(all, gpr, 0)dnl
173: target(all, ptm)dnl
1.9 grange 174: target(all, hotplug)dnl
1.1 miod 175: dnl
176: _mkdev(all, {-all-}, {-dnl
177: show_target(all)dnl
178: -})dnl
179: dnl
180: dnl XXX some arches use ramd, others ramdisk - needs to be fixed eventually
1.3 miod 181: __devitem(ramdisk, ramdisk, Ramdisk kernel devices,nothing)dnl
1.1 miod 182: dnl
1.51 miod 183: target(usb, usb, 0, 1, 2, 3, 4, 5, 6, 7)dnl
1.1 miod 184: target(usb, urio, 0)dnl
185: twrget(usb, uscan, uscanner, 0)dnl
186: target(usb, uhid, 0, 1, 2, 3)dnl
187: target(usb, ulpt, 0, 1)dnl
188: target(usb, ugen, 0, 1)dnl
1.30 todd 189: target(usb, ttyU, 0, 1, 2, 3)dnl
1.1 miod 190: dnl
1.4 deraadt 191: __devitem({-uall-}, uall, All USB devices,usb)dnl
192: _mkdev(uall, uall, {-dnl
1.1 miod 193: show_target({-usb-})dnl
194: -})dnl
195: __devtitle(tap, Tapes)dnl
196: __devitem(tz, tz*, {-DEC TK50 cartridge tape drives-})dnl
197: __devitem(st, {-st*-}, SCSI tape drives)dnl
198: _mkdev(st, st*, {-n=Mult($U, 16)
199: for pre in " " n e en
200: do
201: M ${pre}st$U b major_st_b $n 660 operator
202: M ${pre}rst$U c major_st_c $n 660 operator
203: n=Add($n, 1)
204: done-})dnl
205: __devitem(mt, mt*, (Magnetic) 9-track reel tape drives)dnl
206: __devtitle(dis, Disks)dnl
1.3 miod 207: __devitem(sd, {-sd*-}, {-SCSI disks{-,-} including flopticals-})dnl
208: __devitem(cd, {-cd*-}, ATAPI and SCSI CD-ROM drives)dnl
1.1 miod 209: _mkdev(cd, cd*, {-dodisk2 cd $U major_cd_b major_cd_c $U 0{--}ifstep(cd)-})dnl
1.36 todd 210: __devitem(bthub, {-bthub*-}, Bluetooth Hubs)dnl
211: _mcdev(bthub, bthub*, bthub, {-major_bthub_c-})dnl
1.1 miod 212: __devitem(ch, {-ch*-}, SCSI media changers)dnl
213: _mcdev(ch, ch*, ch, {-major_ch_c-}, 660, operator)dnl
1.12 miod 214: __devitem(uk, uk*, Unknown SCSI devices)dnl
1.1 miod 215: _mcdev(uk, uk*, uk, {-major_uk_c-}, 640, operator)dnl
216: dnl XXX see ramdisk above
1.3 miod 217: __devitem(ramd, ramdisk, Ramdisk kernel devices,nothing)dnl
1.25 todd 218: dnl
1.1 miod 219: _mkdev(ramd, ramdisk, {-dnl
220: show_target(ramd)dnl
221: -})dnl
1.25 todd 222: dnl
1.1 miod 223: target(ramd, std)dnl
224: target(ramd, bpf, 0)dnl
1.25 todd 225: twrget(ramd, com, tty0, 0, 1)dnl
1.26 todd 226: target(ramd, sd, 0, 1, 2, 3, 4)dnl
227: target(ramd, wd, 0, 1, 2, 3, 4)dnl
228: target(ramd, st, 0, 1)dnl
229: target(ramd, cd, 0, 1)dnl
230: target(ramd, rd, 0)dnl
1.25 todd 231: dnl
1.1 miod 232: __devitem(rd, {-rd*-}, quote(rd)pseudo-disks)dnl
233: _mkdev(rd, rd*, {-dodisk2 rd $U major_rd_b major_rd_c $U 0{--}ifstep(rd)-})dnl
234: __devitem(xd, xd*, Xylogic 753/7053 disks)dnl
235: __devitem(xy, xy*, {- Xylogic 450/451 disks-})dnl
1.3 miod 236: __devitem(flo, {-fd*-}, {-Floppy disk drives (3 1/2"{-,-} 5 1/4")-},fd)dnl
1.1 miod 237: _mkdev(flo, fd*,
238: {-typnam=$U${i#fd[01]*}
239: case $typnam in
240: 0|1) typnum=0;; # no type specified, assume A
241: *A) typnum=0; typnam=0;;
242: *B) typnum=1;;
243: *C) typnum=2;;
244: *D) typnum=3;;
245: *E) typnum=4;;
246: *F) typnum=5;;
247: *G) typnum=6;;
248: *H) typnum=7;;
249: *) echo bad type $typnam for $i; exit 1;;
250: esac
251: case $U in
252: 0|1) blk=major_flo_b; chr=major_flo_c;;
253: *) echo bad unit $U for $i; exit 1;;
254: esac
255: nam=fd${typnam}
256: n=Add(Mult($U, 128), Mult($typnum, 16))
257: M ${nam}a b $blk $n 640 operator
258: M ${nam}b b $blk Add($n, 1) 640 operator
259: M ${nam}c b $blk Add($n, 2) 640 operator
1.32 deraadt 260: M ${nam}i b $blk Add($n, 8) 640 operator
1.1 miod 261: M r${nam}a c $chr $n 640 operator
262: M r${nam}b c $chr Add($n, 1) 640 operator
1.32 deraadt 263: M r${nam}c c $chr Add($n, 2) 640 operator
264: M r${nam}i c $chr Add($n, 8) 640 operator-}, 664)dnl
1.1 miod 265: __devitem(iop, iop*, I2O controller devices)dnl
266: _mcdev(iop, iop*, iop, {-major_iop_c-}, 660)dnl
1.3 miod 267: __devitem(wd, {-wd*-}, {-quote(winchester)disk drives (ST506{-,-} IDE{-,-} ESDI{-,-} RLL{-,-} ...)-})dnl
1.1 miod 268: __devitem(ccd, ccd*, Concatenated disk devices)dnl
269: __devitem(raid, raid*, RAIDframe disk devices)dnl
270: __devitem(vnd, vnd*, quote(file)pseudo-disk devices)dnl
1.54 thib 271: _mkdev(vnd, vnd*, {-dodisk vnd $U major_vnd_b major_vnd_c $U 0{--}ifstep(vnd)-})dnl
1.1 miod 272: __devitem(ra, ra*, {-MSCP disks-})dnl
273: __devitem(rx, rx*, {-RX02 floppy disks-})dnl
274: dnl
275: dnl For normal disk devices, add a disk_q entry; anything else define like
276: dnl the rest (such as vnd above).
277: dnl
278: disk_q({-ccd-})dnl
279: disk_q({-hd-})dnl
280: disk_q({-ra-})dnl
281: disk_q({-raid-})dnl
282: disk_q({-rx-})dnl
283: disk_q({-sd-})dnl
284: disk_q({-xy-})dnl
285: disk_q({-xd-})dnl
286: disk_q({-wd-})dnl
287: _mkdev({-disks-}, {-undefine({-C_ase-})show_disks()undefine({-C_ase-})-},
288: {-case $i in
289: show_disks2()dnl
290: esac-})dnl
291: __mkdev({-disks-}){--}dnl
292: dnl
293: __devtitle(cons, Console ports)dnl
1.23 miod 294: __devitem(wscons, wscons, Minimal wscons devices)dnl
1.1 miod 295: twrget(wscons, wscons, ttyC, cfg, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b)dnl
296: target(wscons, wsmux)dnl
297: target(wscons, wskbd, 0, 1, 2, 3)dnl
298: target(wscons, wsmouse, 0, 1, 2, 3)dnl
299: _mkdev({-wscons-}, {-wscons-}, {-dnl
300: show_target(wscons)dnl
301: -})dnl
1.29 tsi 302: __devitem(wsdisp, ttyC-J*, wscons display devices,wsdisplay)dnl
303: _mkdev({-wsdisp-}, tty[C-J]*, {-U=${i##tty[C-J]}
1.1 miod 304: case $i in
305: ttyC*) n=C m=expr(0*256);;
306: ttyD*) n=D m=expr(1*256);;
307: ttyE*) n=E m=expr(2*256);;
308: ttyF*) n=F m=expr(3*256);;
1.29 tsi 309: ttyG*) n=G m=expr(4*256);;
310: ttyH*) n=H m=expr(5*256);;
311: ttyI*) n=I m=expr(6*256);;
312: ttyJ*) n=J m=expr(7*256);;
1.1 miod 313: esac
314: case $U in
1.15 danh 315: [0-9a-f]) M tty$n$U c major_wsdisp_c Add(16#$U, $m) 600;;
1.1 miod 316: cfg) M tty${n}cfg c major_wsdisp_c Add(255,$m) 600;;
317: *) echo bad unit $U for $i; exit 1;;
318: esac-})dnl
319: __devitem(wskbd, wskbd*, wscons keyboards)dnl
1.46 miod 320: dnl XXX wskbd[0-9]* instead of wskbd* in case this appears before
321: dnl XXX ``wsmux|wsmouse|wskbd'' in the final MAKEDEV.
322: _mkdev(wskbd, wskbd[0-9]*, {-M wskbd$U c major_wskbd_c $U 600-})dnl
1.1 miod 323: __devitem(wsmux, wsmux, wscons keyboard/mouse mux devices)dnl
324: _mkdev(wsmux, wsmux|wsmouse|wskbd, {-M wsmouse c major_wsmux_c 0 600
325: M wskbd c major_wsmux_c 1 600-})dnl
326: __devitem(pcons, console, PROM console)dnl
327: __devtitle(point, Pointing devices)dnl
328: __devitem(wsmouse, wsmouse*, wscons mice)dnl
1.46 miod 329: dnl XXX wsmouse[0-9]* instead of wsmouse* in case this appears before
330: dnl XXX ``wsmux|wsmouse|wskbd'' in the final MAKEDEV.
331: _mkdev(wsmouse, wsmouse[0-9]*, {-M wsmouse$U c major_wsmouse_c $U 600-})dnl
1.1 miod 332: __devtitle(pty, Pseudo terminals)dnl
333: __devitem(ptm, ptm, pty master device)dnl
334: _mkdev(ptm, ptm, {-M ptm c major_ptm_c 0 666-})dnl
1.7 millert 335: __devitem(tty, tty*, Set of 62 slave pseudo terminals)dnl
336: __devitem(pty, pty*, Set of 62 master pseudo terminals)dnl
1.1 miod 337: _mkdev(pty, pty*, {-if [ $U -gt 15 ]; then
338: echo bad unit for pty in: $i
339: continue
340: fi
1.6 millert 341: set -A letters p q r s t u v w x y z P Q R S T
342: set -A suffixes 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 \
343: 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 \
344: Y Z
345:
346: name=${letters[$U]}
1.1 miod 347: n=0
1.6 millert 348: while [ $n -lt 62 ]
1.1 miod 349: do
1.6 millert 350: nam=$name${suffixes[$n]}
351: off=Mult($U, 62)
1.1 miod 352: M tty$nam c major_tty_c Add($off, $n)
353: M pty$nam c major_pty_c Add($off, $n)
354: n=Add($n, 1)
355: done-})dnl
356: __devitem(dc, dc*, {-4 channel serial interface (keyboard{-,-} mouse{-,-}modem{-,-} printer)-})dnl
1.38 todd 357: __devitem(drm, drm*, {-Direct Rendering Manager-})dnl
358: _mcdev({-drm-}, drm*, {-drm-}, {-major_drm_c-}, 660)dnl
1.1 miod 359: __devtitle(prn, Printers)dnl
360: __devitem(lpt, lpt*, IEEE 1284 centronics printer)dnl
361: _mkdev(lpt, lpt*|lpa*,
362: {-case $i in
363: lpt*) n=lpt f=0;;
364: lpa*) n=lpa f=128;;
365: esac
366: M $n$U c major_lpt_c Add($U, $f) 600-})dnl
1.3 miod 367: __devitem(lpa, lpa*, Polled printer port,lpt)dnl
1.1 miod 368: __devitem(ppi, ppi*, HP-IB plotters)dnl
369: __devtitle({-usb-}, USB devices)dnl
370: __devitem({-usb-}, usb*, Bus control devices used by usbd for attach/detach)dnl
371: _mkdev({-usb-}, usb*, {-[ "$i" = "usb" ] && u= || u=$U
372: M usb$u c major_usb_c $U 660-})dnl
373: __devitem(uhid, uhid*, Generic HID devices)dnl
374: _mcdev({-uhid-}, uhid*, {-uhid-}, {-major_uhid_c-}, 660)dnl
375: __devitem(ulpt, ulpt*, Printer devices)dnl
376: _mcdev({-ulpt-}, ulpt*, {-ulpt-}, {-major_ulpt_c-}, 660)dnl
1.3 miod 377: __devitem(ttyU, ttyU*, USB serial ports,ucom)dnl
1.1 miod 378: _mkdev({-ttyU-}, {-ttyU[0-9a-zA-Z]-}, {-U=${i#ttyU*}
379: o=$(alph2d $U)
1.13 dlg 380: M ttyU$U c major_ttyU_c $o 660 dialer uucp
381: M cuaU$U c major_ttyU_c Add($o, 128) 660 dialer uucp-})dnl
1.1 miod 382: __devitem(urio, urio*, Diamond Multimedia Rio 500)dnl
383: _mcdev({-urio-}, urio*, {-urio-}, {-major_urio_c-}, 660)dnl
1.3 miod 384: __devitem(uscan, uscanner*, Scanners,uscanner)dnl
1.1 miod 385: _mcdev({-uscan-}, uscanner*, {-uscanner-}, {-major_uscan_c-}, 660)dnl
386: __devitem(ugen, ugen*, Generic USB devices)dnl
387: _mkdev(ugen, ugen*, {-n=Mult($U, 16)
1.15 danh 388: for j in 0{0,1,2,3,4,5,6,7,8,9} 1{0,1,2,3,4,5}
1.1 miod 389: do
1.15 danh 390: M ugen$U.$j c major_ugen_c Add($n, 10#$j) 660
1.1 miod 391: done-})dnl
392: __devtitle(call, Call units)dnl
393: __devtitle(term, Terminal ports)dnl
394: __devitem(dca, dca*, HP200/300 single port serial interface)dnl
395: __devitem(dcm, dcm*, HP200/300 4 port serial mux interface)dnl
396: __devitem(apci, apci*, HP400 4 port serial mux interface)dnl
397: __devitem({-com-}, {-tty[0-7][0-9a-f]-}, NS16x50 serial ports)dnl
398: _mkdev(com, {-tty[0-7][0-9a-f]-}, {-U=${i#tty*}
399: o=$(h2d $U)
400: M tty$U c major_com_c $o 660 dialer uucp
401: M cua$U c major_com_c Add($o, 128) 660 dialer uucp-})dnl
1.3 miod 402: __devitem(ttyc, ttyc*, Cyclades serial ports,cy)dnl
403: __devitem(tzs, tty[a-z]*, Zilog 8530 Serial Port,zs)dnl
1.1 miod 404: _mkdev(tzs, {-tty[a-z]-}, {-u=${i#tty*}
405: case $u in
406: a) n=0 ;;
407: b) n=1 ;;
408: c) n=4 ;;
409: d) n=5 ;;
410: *) echo unknown tty device $i ;;
411: esac
412: M tty$u c major_tzs_c $n 660 dialer uucp-})dnl
1.3 miod 413: __devitem(tth, ttyh*, Sab82532 serial devices,sab)dnl
1.1 miod 414: _mkdev(tth, ttyh*, {-M ttyh$U c major_tth_c $U 660 dialer uucp-})dnl
1.3 miod 415: __devitem(czs, cua[a-z]*, Zilog 8530 Serial Port,zs)dnl
1.1 miod 416: _mkdev(czs, cua[a-z], {-u=${i#cua*}
417: case $u in
418: a) n=0 ;;
419: b) n=1 ;;
420: c) n=4 ;;
421: d) n=5 ;;
422: *) echo unknown cua device $i ;;
423: esac
424: M cua$u c major_czs_c Add($n, 128) 660 dialer uucp-})dnl
1.3 miod 425: __devitem(tty0, tty00, Standard serial port,com)dnl
426: __devitem(mac_tty0, tty00, Standard serial port,zsc)dnl
427: __devitem(ttyz, tty[a-d], On-board zs serial ports,zs)dnl
428: __devitem(cuaz, cua[a-d], On-board zs serial ports,zs)dnl
429: __devitem(ttyB, ttyB?, DEC 3000 ZS8530 ("scc") serial ports,scc)dnl
430: __devitem(scc, scc*, 82530 serial interface,scc)dnl
1.1 miod 431: __devtitle(spec, Special purpose devices)dnl
432: _mkdev(apm, apm*, {-M apm c major_apm_c 0 644
433: M apmctl c major_apm_c 8 644-})dnl
1.18 tholo 434: _mkdev(acpi, acpi*, {-M acpi c major_acpi_c 0 644-})dnl
1.1 miod 435: __devitem(pctr, pctr*, PC Performance Tuning Register access device)dnl
436: _mkdev(pctr, pctr, {-M pctr c major_pctr_c 0 644-})dnl
437: __devitem(systrace, systrace*, System call tracing device)dnl
438: _mkdev(systrace, systrace, {-M systrace c major_systrace_c 0 644-})dnl
1.3 miod 439: __devitem(au, audio*, Audio devices,audio)dnl
1.1 miod 440: _mkdev(au, audio*, {-M sound$U c major_au_c $U
441: M mixer$U c major_au_c Add($U, 16)
442: M audio$U c major_au_c Add($U, 128)
443: M audioctl$U c major_au_c Add($U, 192)
1.21 otto 444: MKlist[${#MKlist[*]}]=";[ -e audio ] || ln -s audio$U audio"
445: MKlist[${#MKlist[*]}]=";[ -e mixer ] || ln -s mixer$U mixer"
446: MKlist[${#MKlist[*]}]=";[ -e sound ] || ln -s sound$U sound"
447: MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"-})dnl
1.42 jmc 448: __devitem(vi, video*, Video V4L2 devices,video)dnl
1.37 mglocker 449: _mkdev(vi, video*, {-M video$U c major_vi_c $U
450: MKlist[${#MKlist[*]}]=";[ -e video ] || ln -s video$U video"-})dnl
1.1 miod 451: __devitem(asc, asc*, ASC Audio device)dnl
452: _mkdev(asc, asc*, {-M asc$U major_asc_c 0-})dnl
1.19 todd 453: __devitem(bio, bio, {-ioctl tunnel pseudo-device-})dnl
454: _mkdev(bio, bio, {-M bio c major_bio_c 0 600-})dnl
1.44 ratchov 455: __devitem(music, music*, MIDI sequencer,music)dnl
1.1 miod 456: _mkdev(music, music*, {-M music$U c major_music_c $U
457: M sequencer$U c major_music_c Add($U, 128)
1.21 otto 458: MKlist[${#MKlist[*]}]=";[ -e music ] || ln -s music$U music"
459: MKlist[${#MKlist[*]}]=";[ -e sequencer ] || ln -s sequencer$U sequencer"-})dnl
1.1 miod 460: __devitem(radio, radio*, FM tuner devices)dnl
461: _mkdev(radio, radio*, {-M radio$U c major_radio_c $U
1.21 otto 462: MKlist[${#MKlist[*]}]=";[ -e radio ] || ln -s radio$U radio"-})dnl
1.23 miod 463: __devitem(fdesc, fd, fd/* nodes, fd)dnl
1.21 otto 464: _mkdev(fdesc, fd, {-RMlist[${#RMlist[*]}]=";mkdir -p fd;rm -f" n=0
1.1 miod 465: while [ $n -lt 64 ];do M fd/$n c major_fdesc_c $n;n=Add($n, 1);done
1.21 otto 466: MKlist[${#MKlist[*]}]=";chmod 555 fd"-})dnl
1.11 miod 467: __devitem(oppr, openprom,PROM settings,openprom)dnl
1.1 miod 468: _cdev(oppr, openprom, 70, 0)dnl
1.3 miod 469: __devitem(cry, crypto, Hardware crypto access driver,crypto)dnl
1.1 miod 470: _mkdev(cry, crypto, {-M crypto c major_cry_c-} 0)dnl
471: __devitem(pf, pf*, Packet Filter)dnl
472: _mkdev(pf, {-pf*-}, {-M pf c major_pf_c 0 600-})dnl
473: __devitem(bpf, bpf*, Berkeley Packet Filter)dnl
474: _mkdev(bpf, {-bpf*-}, {-M bpf$U c major_bpf_c $U 600-}, 600)dnl
475: _mkdev(tun, {-tun*-}, {-M tun$U c major_tun_c $U 600-}, 600)dnl
1.3 miod 476: __devitem(speak, speaker, PC speaker,spkr)dnl
1.1 miod 477: _mkdev(speak, speaker, {-M speaker c major_speak_c 0 600-})dnl
478: __devitem(lkm, lkm, Loadable kernel modules interface)dnl
479: _cdev(lkm, lkm, {-major_lkm_c-}, 0, 640, _lkm)dnl
480: __devitem(tun, tun*, Network tunnel driver)dnl
1.3 miod 481: __devitem(rnd, *random, In-kernel random data source,random)dnl
1.1 miod 482: _mkdev(rnd, *random, {-n=0
1.40 deraadt 483: for pre in " " s u a
1.1 miod 484: do
485: M ${pre}random c major_rnd_c $n 644
486: n=Add($n, 1)
487: done-}, 644)dnl
488: __devitem(joy, joy*, Joystick driver)dnl
489: _mcdev(joy, joy*, joy, {-major_joy_c-}, 666)dnl
1.3 miod 490: __devitem(mag, magma*, Magma multiport cards,magma)dnl
491: __devitem(bppmag, bppmag[mno], Magma parallel port,magma)dnl
1.1 miod 492: __devitem(spif, spif*, quote(spif)multiport cards)dnl
1.3 miod 493: __devitem(bppsp, bpp[jkl], quote(spif)parallel port,spif)dnl
1.1 miod 494: _mkdev(mag, magma*, {-case $U in
495: 0) offset=0 nam=m;;
496: 1) offset=16 nam=n;;
497: 2) offset=32 nam=o;;
498: *) echo "bad unit for $i: $U"; exit 127;;
499: esac
500: offset=Mult($U, 64)
501: n=0
502: while [ $n -lt 16 ]
503: do
504: name=${nam}`hex $n`
505: M tty$name c major_mag_c Add($offset, $n) 660 dialer uucp
506: n=Add($n, 1)
507: done
508: M bpp${nam}0 c major_bppmag_c Add($offset, 0) 600
509: M bpp${nam}1 c major_bppmag_c Add($offset, 1) 600-})dnl
510: _mkdev(spif, spif*, {-case $U in
511: 0) offset=0 nam=j;;
512: 1) offset=16 nam=k;;
513: 2) offset=32 nam=l;;
514: *) echo "bad unit for $i: $U"; exit 127;;
515: esac
516: offset=Mult($U, 64)
517: n=0
518: while [ $n -lt 8 ]
519: do
520: name=${nam}`hex $n`
521: M tty$name c major_spif_c Add($offset, $n) 660 dialer uucp
522: n=Add($n, 1)
523: done
524: M bpp${nam}0 c major_bppsp_c Add($offset, 0) 600-})dnl
525: __devitem(bpp, bpp*, Parallel port)dnl
526: _mkdev(bpp, {-bpp*-}, {-M bpp$U c major_bpp_c $U 600-}, 600)dnl
1.43 jj 527: __devitem(nnpfs, nnpfs*, NNPFS filesystem node, mount_nnpfs 8)dnl
1.52 claudio 528: _mcdev(nnpfs, nnpfs*, nnpfs, {-major_nnpfs_c-}, 600)dnl
1.45 deraadt 529: __devitem(vscsi, vscsi*, Virtual SCSI controller, vscsi 8)dnl
530: _mcdev(vscsi, vscsi*, vscsi, {-major_vscsi_c-}, 600)dnl
1.3 miod 531: __devitem(rmidi, rmidi*, Raw MIDI devices,midi)dnl
1.1 miod 532: _mcdev(rmidi, rmidi*, rmidi, {-major_rmidi_c-}, 666)dnl
1.47 todd 533: __devitem(diskmap, diskmap, Disk mapper, diskmap)dnl
1.48 todd 534: _mkdev(diskmap, diskmap, {-M diskmap c major_diskmap_c 0 640 operator-})dnl
1.53 claudio 535: __devitem(pppx, pppx*, PPP Multiplexer, pppx 4)dnl
536: _mcdev(pppx, pppx*, pppx, {-major_pppx_c-}, 600)dnl
1.1 miod 537: __devtitle(plat, Platform-specific devices)dnl
538: __devitem(bktr, bktr*, Video frame grabbers)dnl
539: _mcdev(bktr, bktr*, bktr, {-major_bktr_c-}, 644)dnl
1.39 miod 540: __devitem(tuner, tuner*, Tuner devices, bktr)dnl
1.1 miod 541: _mkdev(tuner, tuner*, {-M tuner$U c major_bktr_c Add(Mult($U, 2), 16) 644-}, 644)dnl
1.31 kettenis 542: __devitem(pci, pci*, PCI bus devices)dnl
543: _mkdev(pci, pci*, {-M pci$U c major_pci_c $U 600
1.33 krw 544: MKlist[${#MKlist[*]}]=";[ -h pci ] || ln -sf pci0 pci"-})dnl
1.1 miod 545: __devitem(pdc, pdc, PDC device)dnl
546: __devitem(gpr, gpr*, GPR400 smartcard reader)dnl
547: _mcdev(gpr, gpr*, gpr, {-major_gpr_c-})dnl
1.9 grange 548: __devitem(hotplug, hotplug, devices hot plugging)dnl
549: _mkdev(hotplug, hotplug, {-M hotplug c major_hotplug_c $U 400-})dnl
1.10 grange 550: __devitem(gpio, gpio*, General Purpose Input/Output)dnl
551: _mcdev(gpio, gpio*, gpio, {-major_gpio_c-}, 600)dnl
1.1 miod 552: _mkdev(local, local, {-test -s $T.local && sh $T.local-})dnl