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