Annotation of src/etc/MAKEDEV.common, Revision 1.5
1.5 ! miod 1: vers(a, {-$OpenBSD: MAKEDEV.common,v 1.4 2004/03/12 04:54:04 deraadt Exp $-})dnl
1.1 miod 2: divert(1)dnl
3: dnl
4: dnl Common device definitions.
5: dnl
6: dnl This file contains the MI device definitions (as well as some MD
7: dnl definitions not cleaned up yet...)
8: dnl
9: dnl Diversions: (upon termination, concatenated output queues)
10: dnl
11: dnl 0 - very top
12: dnl 1 - descriptions of devices
13: dnl 2 - init of script, function definitions, etc
14: dnl 3 - beginning of global recursive R() function
15: dnl 7 - body of MAKEDEV, device creations, etc
16: dnl 9 - end
17: dnl
18: dnl Diversions 2, 3 and 7 are not filled when generating the manual page.
19: dnl
20: dnl HOW TO ADD A DEVICE:
21: dnl
22: dnl In this file, you must use at least two macros:
23: dnl
24: dnl Use '__devitem(uniqueid, name-pattern, description)' to create an entry
25: dnl in the description at the top of the generated MAKEDEV file:
26: dnl
27: dnl __devitem(sca, sca*, Sugar Generic device)dnl
28: dnl __devitem(cry, crypto, hardware crypto access driver)dnl
29: dnl
30: dnl This is ultimately shown as:
31: dnl
32: dnl # sca* Sugar Generic device
33: dnl # crypto hardware crypto access driver
34: dnl
35: dnl Use '_mkdev(uniqueid, shell-pattern, {-shell-script-})dnl' to create
36: dnl a shell script fragment used to 'create' the device (be sure to match
37: dnl the uniqueid from above):
38: dnl
39: dnl _mkdev(sca, sca*, {-M sca$U c major_sca_c $U
40: dnl M rsca$U b major_sca_b Add($U, 128)-})dnl
41: dnl _mkdev(cry, crypto, {-M crypto c major_cry_c 0-})dnl
42: dnl
43: dnl This is ultimately expanded into:
44: dnl
45: dnl sca*)
46: dnl M sca$U c 24 $U
47: dnl M sca$U b 42 $(($U+128))
48: dnl ;;
49: dnl
50: dnl crypto)
51: dnl M crypto c 47 0
52: dnl ;;
53: dnl
54: dnl In the MAKEDEV.md file, add a '_DEV(uniqueid, charmajor, blockmajor)'
55: dnl entry:
56: dnl
57: dnl _DEV(sca, 24, 42)
58: dnl _DEV(cry, 47)
59: dnl
60: dnl Final step is to use the 'target/twrget' macros to have the 'all)' target
61: dnl generate one or more device(s). Usage of 'target/twrget' is:
62: dnl target(target_name, device_name [, append_string ] .. )
63: dnl twrget(target_name, uniqueid, device_name, [, append_string ] .. )
64: dnl
65: dnl target_name a unique name that later is used as an argument to
66: dnl 'show_target()' (which expands all devices for a
67: dnl given 'target_name').
68: dnl uniqueid same as 'uniqueid' above
69: dnl device_name string representing the device to be mknod'ed
70: dnl append_string for each append_string, `device_name' is prepended
71: dnl
72: dnl Note: 'target(a,b,c)' is equivalent to 'twrget(a,b,b,c)'
73: dnl
74: dnl
75: dnl For a short example:
76: dnl
77: dnl target(all, std)dnl
78: dnl target(all, sca, 0, 1, 2, 3)dnl
79: dnl twrget(all, cry, crypto)dnl
80: dnl
81: dnl would expand to:
82: dnl
83: dnl all)
84: dnl R std sca0 sca1 sca2 sca3 crypto
85: dnl ;;
86: dnl
87: dnl presuming '_DEV(sca, ?, ?)' and '_DEV(std)' were in the MAKEDEV.md file.
88: dnl
89: dnl
90: dnl Everything is 'automatically' added to 'MAKEDEV' based on whether or
91: dnl not the '_DEV()' entry has a corresponding _mkdev() and __devitem()
92: dnl entry in MAKEDEV.mi (this file).
93: dnl
94: dnl Note: be very wary of adding whitespace, carriage returns, or not
95: dnl finishing a macro with ')dnl' .. otherwise, extra blank lines show up
96: dnl in the output.
97: dnl
98: dnl TODO:
99: dnl
100: dnl make a 'disktgt' macro that automatically does:
101: dnl disktgt(rd, {-rd-})
102: dnl
103: dnl target(all,rd,0)
104: dnl target(ramd,rd,0)
105: dnl disk_q(rd)
106: dnl __devitem(rd, {-rd*-}, {-rd-})dnl
107: dnl
108: dnl Note: not all disks are generated in 'all)'. (e.g. vax has a lot of
109: dnl disks that are not generated by 'all)')
110: dnl
111: target(all, mcd, 0)dnl
112: twrget(all, fdesc, fd)dnl
113: target(all, st, 0, 1)dnl
114: target(all, std)dnl
115: target(all, raid, 0, 1, 2, 3)dnl
116: target(all, rz, 0, 1, 2, 3, 4)dnl
117: target(all, hp, 0, 1, 2, 3)dnl
118: target(all, ra, 0, 1, 2, 3)dnl
119: target(all, rx, 0, 1)dnl
120: target(all, wd, 0, 1, 2, 3)dnl
121: target(all, xd, 0, 1, 2, 3)dnl
122: target(all, systrace)dnl
123: target(all, pctr)dnl
124: target(all, pctr0)dnl
125: target(all, pf)dnl
126: twrget(all, cry, crypto)dnl
127: target(all, apm)dnl
128: twrget(all, tth, ttyh, 0, 1)dnl
129: target(all, ttyA, 0, 1)dnl
130: target(all, ttyB, 0, 1, 2, 3, 4, 5)dnl
131: twrget(all, attyB, ttyB, 0, 1, 2, 3, 4)dnl
132: target(all, tty0, 0, 1, 2, 3)dnl
133: twrget(all, mac_tty0, tty0, 0, 1)dnl
134: twrget(all, tzs, tty, a, b, c, d)dnl
135: twrget(all, czs, cua, a, b, c, d)dnl
136: target(all, ttyc, 0, 1, 2, 3, 4, 5, 6, 7)dnl
137: twrget(all, com, tty0, 0, 1, 2, 3)dnl
138: target(all, lkm)dnl
139: twrget(all, mmcl, mmclock)dnl
140: target(all, lpt, 0, 1, 2)dnl
141: twrget(all, lpt, lpa, 0, 1, 2)dnl
142: target(all, joy, 0, 1)dnl
143: twrget(all, rnd, random)dnl
144: target(all, uk, 0)dnl
145: target(all, wt, 0)dnl
146: target(all, wdt, 0)dnl
147: twrget(all, au, audio, 0)dnl
148: twrget(all, speak, speaker)dnl
149: target(all, asc, 0)dnl
150: target(all, music, 0)dnl
151: target(all, radio, 0)dnl
152: target(all, tuner, 0)dnl
153: target(all, rmidi, 0, 1, 2, 3, 4, 5, 6, 7)dnl
1.4 deraadt 154: target(all, uall)dnl
1.1 miod 155: target(all, adb)dnl
156: target(all, iop, 0, 1)dnl
157: target(all, pci)dnl
158: twrget(all, wsmouse, wscons)dnl
159: twrget(all, grf_mac, grf, 0, 1, 2, 3)dnl
160: target(all, par, 0)dnl
161: twrget(all, amouse, mouse, 0, 1)dnl
162: twrget(all, akbd, kbd)dnl
163: target(all, apci, 0)dnl
164: target(all, ppi, 0)dnl
165: target(all, view0, 0, 1, 2, 3, 4, 5)dnl
166: target(all, local)dnl
167: target(all, gpr, 0)dnl
168: target(all, ptm)dnl
169: dnl
170: _mkdev(all, {-all-}, {-dnl
171: show_target(all)dnl
172: -})dnl
173: dnl
174: dnl XXX some arches use ramd, others ramdisk - needs to be fixed eventually
1.3 miod 175: __devitem(ramdisk, ramdisk, Ramdisk kernel devices,nothing)dnl
1.1 miod 176: dnl
177: target(usb, usb, 0, 1)dnl
178: target(usb, urio, 0)dnl
179: twrget(usb, uscan, uscanner, 0)dnl
180: target(usb, uhid, 0, 1, 2, 3)dnl
181: target(usb, ulpt, 0, 1)dnl
182: target(usb, ugen, 0, 1)dnl
183: target(usb, ttyU, 0, 1)dnl
184: dnl
1.4 deraadt 185: __devitem({-uall-}, uall, All USB devices,usb)dnl
186: _mkdev(uall, uall, {-dnl
1.1 miod 187: show_target({-usb-})dnl
188: -})dnl
189: __devtitle(tap, Tapes)dnl
1.3 miod 190: __devitem(wt, {-wt*-}, Archive/Wangtek QIC-cartridge tape drives)dnl
1.1 miod 191: _mkdev(wt, wt*,
192: {-name=wt
193: n=Mult($U, 8) m=Add($n, 4)
194: M $name$U b major_wt_b $n 640 operator
195: M r$name$U c major_wt_c $n 640 operator
196: M n$name$U b major_wt_b $m 640 operator
197: M nr$name$U c major_wt_c $m 640 operator-})dnl
198: __devitem(tz, tz*, {-DEC TK50 cartridge tape drives-})dnl
199: __devitem(st, {-st*-}, SCSI tape drives)dnl
200: _mkdev(st, st*, {-n=Mult($U, 16)
201: for pre in " " n e en
202: do
203: M ${pre}st$U b major_st_b $n 660 operator
204: M ${pre}rst$U c major_st_c $n 660 operator
205: n=Add($n, 1)
206: done-})dnl
207: __devitem(mt, mt*, (Magnetic) 9-track reel tape drives)dnl
208: __devitem(ht, ht*, MASSBUS TM03 and TU?? devices)dnl
209: __devitem(tm, tm*, UNIBUS TM11 and TE10 emulations (e.g. Emulex TC-11))dnl
210: __devitem(ts, ts*, UNIBUS TS11)dnl
211: __devitem(ut, ut*, UNIBUS TU45 emulations (e.g. 9700))dnl
212: __devtitle(dis, Disks)dnl
1.3 miod 213: __devitem(sd, {-sd*-}, {-SCSI disks{-,-} including flopticals-})dnl
214: __devitem(cd, {-cd*-}, ATAPI and SCSI CD-ROM drives)dnl
1.1 miod 215: _mkdev(cd, cd*, {-dodisk2 cd $U major_cd_b major_cd_c $U 0{--}ifstep(cd)-})dnl
1.3 miod 216: __devitem(mcd, mcd*, Mitsumi CD-ROM drives)dnl
1.1 miod 217: _mkdev(mcd, mcd*, {-dodisk2 mcd $U major_mcd_b major_mcd_c $U 0{--}ifstep(mcd)dnl
218: -})dnl
219: __devitem(ch, {-ch*-}, SCSI media changers)dnl
220: _mcdev(ch, ch*, ch, {-major_ch_c-}, 660, operator)dnl
221: __devitem(uk, uk*, SCSI unknown devices)dnl
222: _mcdev(uk, uk*, uk, {-major_uk_c-}, 640, operator)dnl
223: __devitem(ss, ss*, SCSI scanners)dnl
224: _mkdev(ss, ss*, {-M ss$U c major_ss_c Mult($U,16) 640 operator
225: M nss$U c major_ss_c Add(Mult($U,16),1) 640 operator
226: M enss$U c major_ss_c Add(Mult($U,16),3) 640 operator
227: RMlist="$RMlist scan$U"
228: MKlist="$MKlist;umask 77;ln -s ss$U scan$U"-})dnl
229: __devitem(ses, ses*, SES/SAF-TE SCSI devices)dnl
230: _mkdev(ses, ses*, {-M ses$U c major_ses_c $U 640 operator-})dnl
231: dnl XXX see ramdisk above
1.3 miod 232: __devitem(ramd, ramdisk, Ramdisk kernel devices,nothing)dnl
1.1 miod 233: _mkdev(ramd, ramdisk, {-dnl
234: show_target(ramd)dnl
235: -})dnl
236: target(ramd, std)dnl
237: target(ramd, random)dnl
238: target(ramd, bpf, 0)dnl
239: __devitem(rd, {-rd*-}, quote(rd)pseudo-disks)dnl
240: _mkdev(rd, rd*, {-dodisk2 rd $U major_rd_b major_rd_c $U 0{--}ifstep(rd)-})dnl
241: __devitem(xd, xd*, Xylogic 753/7053 disks)dnl
242: __devitem(xy, xy*, {- Xylogic 450/451 disks-})dnl
1.3 miod 243: __devitem(flo, {-fd*-}, {-Floppy disk drives (3 1/2"{-,-} 5 1/4")-},fd)dnl
1.1 miod 244: _mkdev(flo, fd*,
245: {-typnam=$U${i#fd[01]*}
246: case $typnam in
247: 0|1) typnum=0;; # no type specified, assume A
248: *A) typnum=0; typnam=0;;
249: *B) typnum=1;;
250: *C) typnum=2;;
251: *D) typnum=3;;
252: *E) typnum=4;;
253: *F) typnum=5;;
254: *G) typnum=6;;
255: *H) typnum=7;;
256: *) echo bad type $typnam for $i; exit 1;;
257: esac
258: case $U in
259: 0|1) blk=major_flo_b; chr=major_flo_c;;
260: *) echo bad unit $U for $i; exit 1;;
261: esac
262: nam=fd${typnam}
263: n=Add(Mult($U, 128), Mult($typnum, 16))
264: M ${nam}a b $blk $n 640 operator
265: M ${nam}b b $blk Add($n, 1) 640 operator
266: M ${nam}c b $blk Add($n, 2) 640 operator
267: M r${nam}a c $chr $n 640 operator
268: M r${nam}b c $chr Add($n, 1) 640 operator
269: M r${nam}c c $chr Add($n, 2) 640 operator-}, 664)dnl
270: __devitem(iop, iop*, I2O controller devices)dnl
271: _mcdev(iop, iop*, iop, {-major_iop_c-}, 660)dnl
272: __devitem(wdt, wdt0, Watchdog timer)dnl
273: _mcdev(wdt, wdt0, wdt, {-major_wdt_c-}, 440, operator)dnl
1.3 miod 274: __devitem(wd, {-wd*-}, {-quote(winchester)disk drives (ST506{-,-} IDE{-,-} ESDI{-,-} RLL{-,-} ...)-})dnl
1.1 miod 275: __devitem(ccd, ccd*, Concatenated disk devices)dnl
276: __devitem(raid, raid*, RAIDframe disk devices)dnl
277: __devitem(vnd, vnd*, quote(file)pseudo-disk devices)dnl
278: _mkdev(vnd, vnd*, {-dodisk vnd $U major_vnd_b major_vnd_c $U 0{--}ifstep(vnd)
279: dodisk svnd $U major_vnd_b major_vnd_c $U 2048{--}ifstep(vnd)-})dnl
280: __devitem(ra, ra*, {-MSCP disks-})dnl
281: __devitem(hp, hp*, {-MASSBUSS disks-})dnl
282: __devitem(hk, hk*, {-UNIBUS RK06 and RK07 disks-})dnl
283: __devitem(up, up*, {-Other UNIBUS devices-})dnl
284: __devitem(rb, rb*, {-730 IDC w/ RB80 and/or RB02-})dnl
285: __devitem(rx, rx*, {-RX02 floppy disks-})dnl
286: __devitem(rl, rl*, {-UNIBUS RL02-})dnl
287: dnl
288: dnl For normal disk devices, add a disk_q entry; anything else define like
289: dnl the rest (such as vnd above).
290: dnl
291: disk_q({-ccd-})dnl
292: disk_q({-hd-})dnl
293: disk_q({-hk-})dnl
294: disk_q({-hp-})dnl
295: disk_q({-ra-})dnl
296: disk_q({-raid-})dnl
297: disk_q({-rb-})dnl
298: disk_q({-rl-})dnl
299: disk_q({-rx-})dnl
300: disk_q({-sd-})dnl
301: disk_q({-xy-})dnl
302: disk_q({-xd-})dnl
303: disk_q({-up-})dnl
304: disk_q({-wd-})dnl
305: disk_q({-rz-})dnl
306: _mkdev({-disks-}, {-undefine({-C_ase-})show_disks()undefine({-C_ase-})-},
307: {-case $i in
308: show_disks2()dnl
309: esac-})dnl
310: __mkdev({-disks-}){--}dnl
311: dnl
312: __devtitle(cons, Console ports)dnl
313: __devitem(wscons, ttyC0, Minimal wscons devices)dnl
314: twrget(wscons, wscons, ttyC, cfg, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b)dnl
315: target(wscons, wsmux)dnl
316: target(wscons, wskbd, 0, 1, 2, 3)dnl
317: target(wscons, wsmouse, 0, 1, 2, 3)dnl
318: _mkdev({-wscons-}, {-wscons-}, {-dnl
319: show_target(wscons)dnl
320: -})dnl
1.3 miod 321: __devitem(wsdisp, ttyC-F*, wscons display devices,wsdisplay)dnl
1.1 miod 322: _mkdev({-wsdisp-}, tty[C-F]*, {-U=${i##tty[C-F]}
323: case $i in
324: ttyC*) n=C m=expr(0*256);;
325: ttyD*) n=D m=expr(1*256);;
326: ttyE*) n=E m=expr(2*256);;
327: ttyF*) n=F m=expr(3*256);;
328: esac
329: case $U in
330: [0-9a-f]) M tty$n$U c major_wsdisp_c {-$(( 16#$U + $m ))-} 600;;
331: cfg) M tty${n}cfg c major_wsdisp_c Add(255,$m) 600;;
332: *) echo bad unit $U for $i; exit 1;;
333: esac-})dnl
334: __devitem(wskbd, wskbd*, wscons keyboards)dnl
335: _mkdev(wskbd, wskbd*, {-M wskbd$U c major_wskbd_c $U 600-})dnl
336: __devitem(wsmux, wsmux, wscons keyboard/mouse mux devices)dnl
337: _mkdev(wsmux, wsmux|wsmouse|wskbd, {-M wsmouse c major_wsmux_c 0 600
338: M wskbd c major_wsmux_c 1 600-})dnl
339: __devitem(pcons, console, PROM console)dnl
340: __devtitle(point, Pointing devices)dnl
341: __devitem(wsmouse, wsmouse*, wscons mice)dnl
342: _mkdev(wsmouse, wsmouse*, {-M wsmouse$U c major_wsmouse_c $U 600-})dnl
343: __devtitle(pty, Pseudo terminals)dnl
344: __devitem(ptm, ptm, pty master device)dnl
345: _mkdev(ptm, ptm, {-M ptm c major_ptm_c 0 666-})dnl
346: __devitem(tty, tty*, Set of 16 slave pseudo terminals)dnl
347: __devitem(pty, pty*, Set of 16 master pseudo terminals)dnl
348: _mkdev(pty, pty*, {-if [ $U -gt 15 ]; then
349: echo bad unit for pty in: $i
350: continue
351: fi
352: set -A tbl p q r s t u v w x y z P Q R S T
353: name=${tbl[$U]}
354: n=0
355: while [ $n -lt 16 ]
356: do
357: nam=$name$(hex $n)
358: off=Mult($U, 16)
359: M tty$nam c major_tty_c Add($off, $n)
360: M pty$nam c major_pty_c Add($off, $n)
361: n=Add($n, 1)
362: done-})dnl
363: __devitem(dc, dc*, {-4 channel serial interface (keyboard{-,-} mouse{-,-}modem{-,-} printer)-})dnl
364: __devtitle(prn, Printers)dnl
365: __devitem(lpt, lpt*, IEEE 1284 centronics printer)dnl
366: _mkdev(lpt, lpt*|lpa*,
367: {-case $i in
368: lpt*) n=lpt f=0;;
369: lpa*) n=lpa f=128;;
370: esac
371: M $n$U c major_lpt_c Add($U, $f) 600-})dnl
1.3 miod 372: __devitem(lpa, lpa*, Polled printer port,lpt)dnl
1.1 miod 373: __devitem(ppi, ppi*, HP-IB plotters)dnl
374: __devtitle({-usb-}, USB devices)dnl
375: __devitem({-usb-}, usb*, Bus control devices used by usbd for attach/detach)dnl
376: _mkdev({-usb-}, usb*, {-[ "$i" = "usb" ] && u= || u=$U
377: M usb$u c major_usb_c $U 660-})dnl
378: __devitem(uhid, uhid*, Generic HID devices)dnl
379: _mcdev({-uhid-}, uhid*, {-uhid-}, {-major_uhid_c-}, 660)dnl
380: __devitem(ulpt, ulpt*, Printer devices)dnl
381: _mcdev({-ulpt-}, ulpt*, {-ulpt-}, {-major_ulpt_c-}, 660)dnl
1.3 miod 382: __devitem(ttyU, ttyU*, USB serial ports,ucom)dnl
1.1 miod 383: _mkdev({-ttyU-}, {-ttyU[0-9a-zA-Z]-}, {-U=${i#ttyU*}
384: o=$(alph2d $U)
385: M ttyU$U c major_ttyU_c $o 660 dialer uucp-})dnl
386: __devitem(urio, urio*, Diamond Multimedia Rio 500)dnl
387: _mcdev({-urio-}, urio*, {-urio-}, {-major_urio_c-}, 660)dnl
1.3 miod 388: __devitem(uscan, uscanner*, Scanners,uscanner)dnl
1.1 miod 389: _mcdev({-uscan-}, uscanner*, {-uscanner-}, {-major_uscan_c-}, 660)dnl
390: __devitem(ugen, ugen*, Generic USB devices)dnl
391: _mkdev(ugen, ugen*, {-n=Mult($U, 16)
392: for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15
393: do
394: M ugen$U.$j c major_ugen_c Add($n, $j) 660
395: done-})dnl
396: __devtitle(call, Call units)dnl
397: __devtitle(term, Terminal ports)dnl
398: __devitem(dca, dca*, HP200/300 single port serial interface)dnl
399: __devitem(dcm, dcm*, HP200/300 4 port serial mux interface)dnl
400: __devitem(apci, apci*, HP400 4 port serial mux interface)dnl
401: __devitem({-com-}, {-tty[0-7][0-9a-f]-}, NS16x50 serial ports)dnl
402: _mkdev(com, {-tty[0-7][0-9a-f]-}, {-U=${i#tty*}
403: o=$(h2d $U)
404: M tty$U c major_com_c $o 660 dialer uucp
405: M cua$U c major_com_c Add($o, 128) 660 dialer uucp-})dnl
1.3 miod 406: __devitem(ttyc, ttyc*, Cyclades serial ports,cy)dnl
407: __devitem(tzs, tty[a-z]*, Zilog 8530 Serial Port,zs)dnl
1.1 miod 408: _mkdev(tzs, {-tty[a-z]-}, {-u=${i#tty*}
409: case $u in
410: a) n=0 ;;
411: b) n=1 ;;
412: c) n=4 ;;
413: d) n=5 ;;
414: *) echo unknown tty device $i ;;
415: esac
416: M tty$u c major_tzs_c $n 660 dialer uucp-})dnl
1.3 miod 417: __devitem(tth, ttyh*, Sab82532 serial devices,sab)dnl
1.1 miod 418: _mkdev(tth, ttyh*, {-M ttyh$U c major_tth_c $U 660 dialer uucp-})dnl
1.3 miod 419: __devitem(czs, cua[a-z]*, Zilog 8530 Serial Port,zs)dnl
1.1 miod 420: _mkdev(czs, cua[a-z], {-u=${i#cua*}
421: case $u in
422: a) n=0 ;;
423: b) n=1 ;;
424: c) n=4 ;;
425: d) n=5 ;;
426: *) echo unknown cua device $i ;;
427: esac
428: M cua$u c major_czs_c Add($n, 128) 660 dialer uucp-})dnl
1.3 miod 429: __devitem(tty0, tty00, Standard serial port,com)dnl
430: __devitem(mac_tty0, tty00, Standard serial port,zsc)dnl
431: __devitem(ttyz, tty[a-d], On-board zs serial ports,zs)dnl
432: __devitem(cuaz, cua[a-d], On-board zs serial ports,zs)dnl
433: __devitem(ttyB, ttyB?, DEC 3000 ZS8530 ("scc") serial ports,scc)dnl
434: __devitem(scc, scc*, 82530 serial interface,scc)dnl
1.1 miod 435: __devtitle(spec, Special purpose devices)dnl
436: __devitem(apm, apm, Power management device)dnl
437: _mkdev(apm, apm*, {-M apm c major_apm_c 0 644
438: M apmctl c major_apm_c 8 644-})dnl
439: __devitem(pctr, pctr*, PC Performance Tuning Register access device)dnl
440: _mkdev(pctr, pctr, {-M pctr c major_pctr_c 0 644-})dnl
441: __devitem(systrace, systrace*, System call tracing device)dnl
442: _mkdev(systrace, systrace, {-M systrace c major_systrace_c 0 644-})dnl
1.3 miod 443: __devitem(au, audio*, Audio devices,audio)dnl
1.1 miod 444: _mkdev(au, audio*, {-M sound$U c major_au_c $U
445: M mixer$U c major_au_c Add($U, 16)
446: M audio$U c major_au_c Add($U, 128)
447: M audioctl$U c major_au_c Add($U, 192)
448: MKlist="$MKlist;[ -e audio ] || ln -s audio$U audio"
449: MKlist="$MKlist;[ -e mixer ] || ln -s mixer$U mixer"
450: MKlist="$MKlist;[ -e sound ] || ln -s sound$U sound"
451: MKlist="$MKlist;[ -e audioctl ] || ln -s audioctl$U audioctl"-})dnl
452: __devitem(asc, asc*, ASC Audio device)dnl
453: _mkdev(asc, asc*, {-M asc$U major_asc_c 0-})dnl
1.3 miod 454: __devitem(music, music*, MIDI devices,midi)dnl
1.1 miod 455: _mkdev(music, music*, {-M music$U c major_music_c $U
456: M sequencer$U c major_music_c Add($U, 128)
457: MKlist="$MKlist;[ -e music ] || ln -s music$U music"
458: MKlist="$MKlist;[ -e sequencer ] || ln -s sequencer$U sequencer"-})dnl
459: __devitem(radio, radio*, FM tuner devices)dnl
460: _mkdev(radio, radio*, {-M radio$U c major_radio_c $U
461: MKlist="$MKlist;[ -e radio ] || ln -s radio$U radio"-})dnl
1.3 miod 462: __devitem(fdesc, fd, fd/* nodes for fdescfs,mount_fdesc 8)dnl
1.1 miod 463: _mkdev(fdesc, fd, {-RMlist="mkdir -p fd;$RMlist" n=0
464: while [ $n -lt 64 ];do M fd/$n c major_fdesc_c $n;n=Add($n, 1);done
465: MKlist="$MKlist;chmod 555 fd"-})dnl
1.3 miod 466: __devitem(grf_mac, grf*, Raw interface to the mac68k graphics devices,grf)dnl
1.1 miod 467: __devitem(ite, ite*, Terminal emulator interface to HP300 graphics devices)dnl
468: __devitem({-hil-}, {-hil-}, HP-HIL input devices)dnl
1.3 miod 469: __devitem(oppr, openprom,,openprom)dnl
1.1 miod 470: _cdev(oppr, openprom, 70, 0)dnl
1.3 miod 471: __devitem(cry, crypto, Hardware crypto access driver,crypto)dnl
1.1 miod 472: _mkdev(cry, crypto, {-M crypto c major_cry_c-} 0)dnl
473: __devitem(pf, pf*, Packet Filter)dnl
474: _mkdev(pf, {-pf*-}, {-M pf c major_pf_c 0 600-})dnl
475: __devitem(bpf, bpf*, Berkeley Packet Filter)dnl
476: _mkdev(bpf, {-bpf*-}, {-M bpf$U c major_bpf_c $U 600-}, 600)dnl
477: _mkdev(tun, {-tun*-}, {-M tun$U c major_tun_c $U 600-}, 600)dnl
1.3 miod 478: __devitem(speak, speaker, PC speaker,spkr)dnl
1.1 miod 479: _mkdev(speak, speaker, {-M speaker c major_speak_c 0 600-})dnl
480: __devitem(lkm, lkm, Loadable kernel modules interface)dnl
481: _cdev(lkm, lkm, {-major_lkm_c-}, 0, 640, _lkm)dnl
482: __devitem(tun, tun*, Network tunnel driver)dnl
1.3 miod 483: __devitem(rnd, *random, In-kernel random data source,random)dnl
1.1 miod 484: _mkdev(rnd, *random, {-n=0
485: for pre in " " s u p a
486: do
487: M ${pre}random c major_rnd_c $n 644
488: n=Add($n, 1)
489: done-}, 644)dnl
490: __devitem(joy, joy*, Joystick driver)dnl
491: _mcdev(joy, joy*, joy, {-major_joy_c-}, 666)dnl
1.3 miod 492: __devitem(mag, magma*, Magma multiport cards,magma)dnl
493: __devitem(bppmag, bppmag[mno], Magma parallel port,magma)dnl
1.1 miod 494: __devitem(spif, spif*, quote(spif)multiport cards)dnl
1.3 miod 495: __devitem(bppsp, bpp[jkl], quote(spif)parallel port,spif)dnl
1.1 miod 496: _mkdev(mag, magma*, {-case $U in
497: 0) offset=0 nam=m;;
498: 1) offset=16 nam=n;;
499: 2) offset=32 nam=o;;
500: *) echo "bad unit for $i: $U"; exit 127;;
501: esac
502: offset=Mult($U, 64)
503: n=0
504: while [ $n -lt 16 ]
505: do
506: name=${nam}`hex $n`
507: M tty$name c major_mag_c Add($offset, $n) 660 dialer uucp
508: n=Add($n, 1)
509: done
510: M bpp${nam}0 c major_bppmag_c Add($offset, 0) 600
511: M bpp${nam}1 c major_bppmag_c Add($offset, 1) 600-})dnl
512: _mkdev(spif, spif*, {-case $U in
513: 0) offset=0 nam=j;;
514: 1) offset=16 nam=k;;
515: 2) offset=32 nam=l;;
516: *) echo "bad unit for $i: $U"; exit 127;;
517: esac
518: offset=Mult($U, 64)
519: n=0
520: while [ $n -lt 8 ]
521: do
522: name=${nam}`hex $n`
523: M tty$name c major_spif_c Add($offset, $n) 660 dialer uucp
524: n=Add($n, 1)
525: done
526: M bpp${nam}0 c major_bppsp_c Add($offset, 0) 600-})dnl
527: __devitem(bpp, bpp*, Parallel port)dnl
528: _mkdev(bpp, {-bpp*-}, {-M bpp$U c major_bpp_c $U 600-}, 600)dnl
1.3 miod 529: __devitem(xfs, xfs*, XFS filesystem node, mount_xfs 8)dnl
1.1 miod 530: _mcdev(xfs, xfs*, xfs, {-major_xfs_c-}, 600)dnl
531: __devitem(hil, hil, HP-HIL input devices)dnl
1.3 miod 532: __devitem(rmidi, rmidi*, Raw MIDI devices,midi)dnl
1.1 miod 533: _mcdev(rmidi, rmidi*, rmidi, {-major_rmidi_c-}, 666)dnl
534: __devtitle(plat, Platform-specific devices)dnl
535: __devitem(bktr, bktr*, Video frame grabbers)dnl
536: _mcdev(bktr, bktr*, bktr, {-major_bktr_c-}, 644)dnl
537: __devitem(tuner, tuner*, Tuner devices)dnl
538: _mkdev(tuner, tuner*, {-M tuner$U c major_bktr_c Add(Mult($U, 2), 16) 644-}, 644)dnl
539: __devitem(pci, pci, PCI bus device)dnl
540: _mkdev(pci, pci, {-M pci c major_pci_c 0 600-}, 600)dnl
541: __devitem(adb, adb, Apple Desktop bus event interface)dnl
542: _mkdev(adb, adb, {-M adb c major_adb_c 0-})dnl
543: __devitem(pdc, pdc, PDC device)dnl
544: __devitem(gpr, gpr*, GPR400 smartcard reader)dnl
545: _mcdev(gpr, gpr*, gpr, {-major_gpr_c-})dnl
546: _mkdev(local, local, {-test -s $T.local && sh $T.local-})dnl