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