MAKEDEV.common revision 1.1
1vers(a, {-$OpenBSD: MAKEDEV.common,v 1.1 2004/02/16 18:58:54 miod 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 128twrget(all, tth, ttyh, 0, 1)dnl 129target(all, ttyA, 0, 1)dnl 130target(all, ttyB, 0, 1, 2, 3, 4, 5)dnl 131twrget(all, attyB, ttyB, 0, 1, 2, 3, 4)dnl 132target(all, tty0, 0, 1, 2, 3)dnl 133twrget(all, mac_tty0, tty0, 0, 1)dnl 134twrget(all, tzs, tty, a, b, c, d)dnl 135twrget(all, czs, cua, a, b, c, d)dnl 136target(all, ttyc, 0, 1, 2, 3, 4, 5, 6, 7)dnl 137twrget(all, com, tty0, 0, 1, 2, 3)dnl 138target(all, lkm)dnl 139twrget(all, mmcl, mmclock)dnl 140target(all, lpt, 0, 1, 2)dnl 141twrget(all, lpt, lpa, 0, 1, 2)dnl 142target(all, joy, 0, 1)dnl 143twrget(all, rnd, random)dnl 144target(all, uk, 0)dnl 145target(all, wt, 0)dnl 146target(all, wdt, 0)dnl 147twrget(all, au, audio, 0)dnl 148twrget(all, speak, speaker)dnl 149target(all, asc, 0)dnl 150target(all, music, 0)dnl 151target(all, radio, 0)dnl 152target(all, tuner, 0)dnl 153target(all, rmidi, 0, 1, 2, 3, 4, 5, 6, 7)dnl 154target(all, usbs)dnl 155target(all, adb)dnl 156target(all, iop, 0, 1)dnl 157target(all, pci)dnl 158twrget(all, wsmouse, wscons)dnl 159twrget(all, grf_mac, grf, 0, 1, 2, 3)dnl 160target(all, par, 0)dnl 161twrget(all, amouse, mouse, 0, 1)dnl 162twrget(all, akbd, kbd)dnl 163target(all, apci, 0)dnl 164target(all, ppi, 0)dnl 165target(all, view0, 0, 1, 2, 3, 4, 5)dnl 166target(all, local)dnl 167target(all, gpr, 0)dnl 168target(all, ptm)dnl 169dnl 170_mkdev(all, {-all-}, {-dnl 171show_target(all)dnl 172-})dnl 173dnl 174dnl XXX some arches use ramd, others ramdisk - needs to be fixed eventually 175__devitem(ramdisk, ramdisk, Ramdisk kernel devices)dnl 176dnl 177target(usb, usb, 0, 1)dnl 178target(usb, urio, 0)dnl 179twrget(usb, uscan, uscanner, 0)dnl 180target(usb, uhid, 0, 1, 2, 3)dnl 181target(usb, ulpt, 0, 1)dnl 182target(usb, ugen, 0, 1)dnl 183target(usb, ttyU, 0, 1)dnl 184dnl 185__devitem({-usbs-}, usbs, All USB devices)dnl 186_mkdev(usbs, usbs, {-dnl 187show_target({-usb-})dnl 188-})dnl 189__devtitle(tap, Tapes)dnl 190__devitem(wt, {-wt* -}, Archive/Wangtek QIC-cartridge tape drives)dnl 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(ct, ct*, HP300 HP-IB cartridge tape drives)dnl 208__devitem(mt, mt*, (Magnetic) 9-track reel tape drives)dnl 209__devitem(ht, ht*, MASSBUS TM03 and TU?? devices)dnl 210__devitem(tm, tm*, UNIBUS TM11 and TE10 emulations (e.g. Emulex TC-11))dnl 211__devitem(ts, ts*, UNIBUS TS11)dnl 212__devitem(ut, ut*, UNIBUS TU45 emulations (e.g. 9700))dnl 213__devtitle(dis, Disks)dnl 214dnl REMOVE __devitem(rz, rz*, SCSI disks)dnl 215__devitem(sd, {-sd*-}, {-SCSI disks, includes flopticals-})dnl 216__devitem(hd, {-hd*-}, HP300 HP-IB disks)dnl 217__devitem(cd, {-cd*-}, SCSI cdrom drives)dnl 218__devitem(acd, acd*, ATAPI cdrom drives)dnl 219_mkdev(cd, cd*, {-dodisk2 cd $U major_cd_b major_cd_c $U 0{--}ifstep(cd)-})dnl 220__devitem(mcd, mcd*, Mitsumi cdrom drives)dnl 221_mkdev(mcd, mcd*, {-dodisk2 mcd $U major_mcd_b major_mcd_c $U 0{--}ifstep(mcd)dnl 222-})dnl 223__devitem(ch, {-ch*-}, SCSI media changers)dnl 224_mcdev(ch, ch*, ch, {-major_ch_c-}, 660, operator)dnl 225__devitem(uk, uk*, SCSI unknown devices)dnl 226_mcdev(uk, uk*, uk, {-major_uk_c-}, 640, operator)dnl 227__devitem(ss, ss*, SCSI scanners)dnl 228_mkdev(ss, ss*, {-M ss$U c major_ss_c Mult($U,16) 640 operator 229 M nss$U c major_ss_c Add(Mult($U,16),1) 640 operator 230 M enss$U c major_ss_c Add(Mult($U,16),3) 640 operator 231 RMlist="$RMlist scan$U" 232 MKlist="$MKlist;umask 77;ln -s ss$U scan$U"-})dnl 233__devitem(ses, ses*, SES/SAF-TE SCSI devices)dnl 234_mkdev(ses, ses*, {-M ses$U c major_ses_c $U 640 operator-})dnl 235dnl XXX see ramdisk above 236__devitem(ramd, ramdisk, Ramdisk kernel devices)dnl 237_mkdev(ramd, ramdisk, {-dnl 238show_target(ramd)dnl 239-})dnl 240target(ramd, std)dnl 241target(ramd, random)dnl 242target(ramd, bpf, 0)dnl 243__devitem(rd, {-rd*-}, quote(rd)pseudo-disks)dnl 244_mkdev(rd, rd*, {-dodisk2 rd $U major_rd_b major_rd_c $U 0{--}ifstep(rd)-})dnl 245__devitem(xd, xd*, Xylogic 753/7053 disks)dnl 246__devitem(xy, xy*, {- Xylogic 450/451 disks-})dnl 247__devitem(flo, {-fd*-}, {-Floppy disk drives (3 1/2"{-,-} 5 1/4")-})dnl 248_mkdev(flo, fd*, 249{-typnam=$U${i#fd[01]*} 250 case $typnam in 251 0|1) typnum=0;; # no type specified, assume A 252 *A) typnum=0; typnam=0;; 253 *B) typnum=1;; 254 *C) typnum=2;; 255 *D) typnum=3;; 256 *E) typnum=4;; 257 *F) typnum=5;; 258 *G) typnum=6;; 259 *H) typnum=7;; 260 *) echo bad type $typnam for $i; exit 1;; 261 esac 262 case $U in 263 0|1) blk=major_flo_b; chr=major_flo_c;; 264 *) echo bad unit $U for $i; exit 1;; 265 esac 266 nam=fd${typnam} 267 n=Add(Mult($U, 128), Mult($typnum, 16)) 268 M ${nam}a b $blk $n 640 operator 269 M ${nam}b b $blk Add($n, 1) 640 operator 270 M ${nam}c b $blk Add($n, 2) 640 operator 271 M r${nam}a c $chr $n 640 operator 272 M r${nam}b c $chr Add($n, 1) 640 operator 273 M r${nam}c c $chr Add($n, 2) 640 operator-}, 664)dnl 274__devitem(iop, iop*, I2O controller devices)dnl 275_mcdev(iop, iop*, iop, {-major_iop_c-}, 660)dnl 276__devitem(wdt, wdt0, Watchdog timer)dnl 277_mcdev(wdt, wdt0, wdt, {-major_wdt_c-}, 440, operator)dnl 278__devitem(wd, {-wd*-}, {-quote(winchester)disk drives (ST506, IDE, ESDI, RLL, ...)-})dnl 279__devitem(ccd, ccd*, Concatenated disk devices)dnl 280__devitem(raid, raid*, RAIDframe disk devices)dnl 281__devitem(vnd, vnd*, quote(file)pseudo-disk devices)dnl 282_mkdev(vnd, vnd*, {-dodisk vnd $U major_vnd_b major_vnd_c $U 0{--}ifstep(vnd) 283 dodisk svnd $U major_vnd_b major_vnd_c $U 2048{--}ifstep(vnd)-})dnl 284__devitem(ra, ra*, {-MSCP disks-})dnl 285__devitem(hp, hp*, {-MASSBUSS disks-})dnl 286__devitem(hk, hk*, {-UNIBUS RK06 and RK07 disks-})dnl 287__devitem(up, up*, {-Other UNIBUS devices-})dnl 288__devitem(rb, rb*, {-730 IDC w/ RB80 and/or RB02-})dnl 289__devitem(rx, rx*, {-RX02 floppy disks-})dnl 290__devitem(rl, rl*, {-UNIBUS RL02-})dnl 291__devitem(hd, hd*, {-HDC9224 disks-})dnl 292dnl 293dnl For normal disk devices, add a disk_q entry; anything else define like 294dnl the rest (such as vnd above). 295dnl 296disk_q({-ccd-})dnl 297disk_q({-hd-})dnl 298disk_q({-hk-})dnl 299disk_q({-hp-})dnl 300disk_q({-ra-})dnl 301disk_q({-raid-})dnl 302disk_q({-rb-})dnl 303disk_q({-rl-})dnl 304disk_q({-rx-})dnl 305disk_q({-sd-})dnl 306disk_q({-xy-})dnl 307disk_q({-xd-})dnl 308disk_q({-up-})dnl 309disk_q({-wd-})dnl 310disk_q({-rz-})dnl 311_mkdev({-disks-}, {-undefine({-C_ase-})show_disks()undefine({-C_ase-})-}, 312{-case $i in 313show_disks2()dnl 314 esac-})dnl 315__mkdev({-disks-}){--}dnl 316dnl 317__devtitle(cons, Console ports)dnl 318__devitem(wscons, ttyC0, Minimal wscons devices)dnl 319twrget(wscons, wscons, ttyC, cfg, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b)dnl 320target(wscons, wsmux)dnl 321target(wscons, wskbd, 0, 1, 2, 3)dnl 322target(wscons, wsmouse, 0, 1, 2, 3)dnl 323_mkdev({-wscons-}, {-wscons-}, {-dnl 324show_target(wscons)dnl 325-})dnl 326__devitem(wsdisp, ttyC-F*, wscons display devices)dnl 327_mkdev({-wsdisp-}, tty[C-F]*, {-U=${i##tty[C-F]} 328 case $i in 329 ttyC*) n=C m=expr(0*256);; 330 ttyD*) n=D m=expr(1*256);; 331 ttyE*) n=E m=expr(2*256);; 332 ttyF*) n=F m=expr(3*256);; 333 esac 334 case $U in 335 [0-9a-f]) M tty$n$U c major_wsdisp_c {-$(( 16#$U + $m ))-} 600;; 336 cfg) M tty${n}cfg c major_wsdisp_c Add(255,$m) 600;; 337 *) echo bad unit $U for $i; exit 1;; 338 esac-})dnl 339__devitem(wskbd, wskbd*, wscons keyboards)dnl 340_mkdev(wskbd, wskbd*, {-M wskbd$U c major_wskbd_c $U 600-})dnl 341__devitem(wsmux, wsmux, wscons keyboard/mouse mux devices)dnl 342_mkdev(wsmux, wsmux|wsmouse|wskbd, {-M wsmouse c major_wsmux_c 0 600 343 M wskbd c major_wsmux_c 1 600-})dnl 344__devitem(pcons, console, PROM console)dnl 345__devtitle(point, Pointing devices)dnl 346__devitem(wsmouse, wsmouse*, wscons mice)dnl 347_mkdev(wsmouse, wsmouse*, {-M wsmouse$U c major_wsmouse_c $U 600-})dnl 348__devtitle(pty, Pseudo terminals)dnl 349__devitem(ptm, ptm, pty master device)dnl 350_mkdev(ptm, ptm, {-M ptm c major_ptm_c 0 666-})dnl 351__devitem(tty, tty*, Set of 16 slave pseudo terminals)dnl 352__devitem(pty, pty*, Set of 16 master pseudo terminals)dnl 353_mkdev(pty, pty*, {-if [ $U -gt 15 ]; then 354 echo bad unit for pty in: $i 355 continue 356 fi 357 set -A tbl p q r s t u v w x y z P Q R S T 358 name=${tbl[$U]} 359 n=0 360 while [ $n -lt 16 ] 361 do 362 nam=$name$(hex $n) 363 off=Mult($U, 16) 364 M tty$nam c major_tty_c Add($off, $n) 365 M pty$nam c major_pty_c Add($off, $n) 366 n=Add($n, 1) 367 done-})dnl 368__devitem(dc, dc*, {-4 channel serial interface (keyboard{-,-} mouse{-,-}modem{-,-} printer)-})dnl 369__devtitle(prn, Printers)dnl 370__devitem(par, par*, On-board parallel port)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)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)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-})dnl 392__devitem(urio, urio*, Diamond Multimedia Rio 500)dnl 393_mcdev({-urio-}, urio*, {-urio-}, {-major_urio_c-}, 660)dnl 394__devitem(uscan, uscanner*, Scanners)dnl 395_mcdev({-uscan-}, uscanner*, {-uscanner-}, {-major_uscan_c-}, 660)dnl 396__devitem(ugen, ugen*, Generic USB devices)dnl 397_mkdev(ugen, ugen*, {-n=Mult($U, 16) 398 for j in 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 399 do 400 M ugen$U.$j c major_ugen_c Add($n, $j) 660 401 done-})dnl 402__devtitle(call, Call units)dnl 403__devtitle(term, Terminal ports)dnl 404__devitem(dca, dca*, HP200/300 single port serial interface)dnl 405__devitem(dcm, dcm*, HP200/300 4 port serial mux interface)dnl 406__devitem(apci, apci*, HP400 4 port serial mux interface)dnl 407__devitem({-com-}, {-tty[0-7][0-9a-f]-}, NS16x50 serial ports)dnl 408_mkdev(com, {-tty[0-7][0-9a-f]-}, {-U=${i#tty*} 409 o=$(h2d $U) 410 M tty$U c major_com_c $o 660 dialer uucp 411 M cua$U c major_com_c Add($o, 128) 660 dialer uucp-})dnl 412__devitem(ttyc, ttyc*, Cyclades serial ports)dnl 413__devitem(tzs, tty[a-z]*, Zilog 8530 Serial Port)dnl 414_mkdev(tzs, {-tty[a-z]-}, {-u=${i#tty*} 415 case $u in 416 a) n=0 ;; 417 b) n=1 ;; 418 c) n=4 ;; 419 d) n=5 ;; 420 *) echo unknown tty device $i ;; 421 esac 422 M tty$u c major_tzs_c $n 660 dialer uucp-})dnl 423__devitem(tth, ttyh*, Sab82532 serial devices)dnl 424_mkdev(tth, ttyh*, {-M ttyh$U c major_tth_c $U 660 dialer uucp-})dnl 425__devitem(czs, cua[a-z]*, Zilog 8530 Serial Port)dnl 426_mkdev(czs, cua[a-z], {-u=${i#cua*} 427 case $u in 428 a) n=0 ;; 429 b) n=1 ;; 430 c) n=4 ;; 431 d) n=5 ;; 432 *) echo unknown cua device $i ;; 433 esac 434 M cua$u c major_czs_c Add($n, 128) 660 dialer uucp-})dnl 435__devitem(tty0, tty00, Standard serial port)dnl 436__devitem(mac_tty0, tty00, Standard serial port)dnl 437__devitem(ttyz, tty[a-d], On-board zs serial ports)dnl 438__devitem(cuaz, cua[a-d], On-board zs serial ports)dnl 439__devitem(ttyB, ttyB?, DEC 3000 ZS8530 ("scc") serial ports)dnl 440__devitem(scc, scc*, 82530 serial interface)dnl 441__devtitle(spec, Special purpose devices)dnl 442__devitem(apm, apm, Power management device)dnl 443_mkdev(apm, apm*, {-M apm c major_apm_c 0 644 444 M apmctl c major_apm_c 8 644-})dnl 445__devitem(pctr, pctr*, PC Performance Tuning Register access device)dnl 446_mkdev(pctr, pctr, {-M pctr c major_pctr_c 0 644-})dnl 447__devitem(systrace, systrace*, System call tracing device)dnl 448_mkdev(systrace, systrace, {-M systrace c major_systrace_c 0 644-})dnl 449__devitem(au, audio*, Audio devices)dnl 450_mkdev(au, audio*, {-M sound$U c major_au_c $U 451 M mixer$U c major_au_c Add($U, 16) 452 M audio$U c major_au_c Add($U, 128) 453 M audioctl$U c major_au_c Add($U, 192) 454 MKlist="$MKlist;[ -e audio ] || ln -s audio$U audio" 455 MKlist="$MKlist;[ -e mixer ] || ln -s mixer$U mixer" 456 MKlist="$MKlist;[ -e sound ] || ln -s sound$U sound" 457 MKlist="$MKlist;[ -e audioctl ] || ln -s audioctl$U audioctl"-})dnl 458__devitem(asc, asc*, ASC Audio device)dnl 459_mkdev(asc, asc*, {-M asc$U major_asc_c 0-})dnl 460__devitem(music, music*, MIDI devices)dnl 461_mkdev(music, music*, {-M music$U c major_music_c $U 462 M sequencer$U c major_music_c Add($U, 128) 463 MKlist="$MKlist;[ -e music ] || ln -s music$U music" 464 MKlist="$MKlist;[ -e sequencer ] || ln -s sequencer$U sequencer"-})dnl 465__devitem(radio, radio*, FM tuner devices)dnl 466_mkdev(radio, radio*, {-M radio$U c major_radio_c $U 467 MKlist="$MKlist;[ -e radio ] || ln -s radio$U radio"-})dnl 468__devitem(fdesc, fd, fd/* nodes for fdescfs)dnl 469_mkdev(fdesc, fd, {-RMlist="mkdir -p fd;$RMlist" n=0 470 while [ $n -lt 64 ];do M fd/$n c major_fdesc_c $n;n=Add($n, 1);done 471 MKlist="$MKlist;chmod 555 fd"-})dnl 472__devitem(grf_mac, grf*, Raw interface to the mac68k graphics devices)dnl 473__devitem(ite, ite*, Terminal emulator interface to HP300 graphics devices)dnl 474__devitem({-hil-}, {-hil-}, HP-HIL input devices)dnl 475__devitem(oppr, openprom)dnl 476_cdev(oppr, openprom, 70, 0)dnl 477__devitem(cry, crypto, Hardware crypto access driver)dnl 478_mkdev(cry, crypto, {-M crypto c major_cry_c-} 0)dnl 479__devitem(pf, pf*, Packet Filter)dnl 480_mkdev(pf, {-pf*-}, {-M pf c major_pf_c 0 600-})dnl 481__devitem(bpf, bpf*, Berkeley Packet Filter)dnl 482_mkdev(bpf, {-bpf*-}, {-M bpf$U c major_bpf_c $U 600-}, 600)dnl 483_mkdev(tun, {-tun*-}, {-M tun$U c major_tun_c $U 600-}, 600)dnl 484__devitem(speak, speaker, PC speaker)dnl 485_mkdev(speak, speaker, {-M speaker c major_speak_c 0 600-})dnl 486__devitem(lkm, lkm, Loadable kernel modules interface)dnl 487_cdev(lkm, lkm, {-major_lkm_c-}, 0, 640, _lkm)dnl 488__devitem(mmcl, mmclock, Memory mapped clock)dnl 489__devitem(tun, tun*, Network tunnel driver)dnl 490__devitem(rnd, *random, In-kernel random data source)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)dnl 500__devitem(bppmag, bppmag[mno], Magma parallel port)dnl 501__devitem(spif, spif*, quote(spif)multiport cards)dnl 502__devitem(bppsp, bpp[jkl], quote(spif)parallel port)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)dnl 537_mcdev(xfs, xfs*, xfs, {-major_xfs_c-}, 600)dnl 538__devitem(hil, hil, HP-HIL input devices)dnl 539__devitem(rmidi, rmidi*, Raw MIDI devices)dnl 540_mcdev(rmidi, rmidi*, rmidi, {-major_rmidi_c-}, 666)dnl 541__devtitle(plat, Platform-specific devices)dnl 542__devitem(bktr, bktr*, Video frame grabbers)dnl 543_mcdev(bktr, bktr*, bktr, {-major_bktr_c-}, 644)dnl 544__devitem(tuner, tuner*, Tuner devices)dnl 545_mkdev(tuner, tuner*, {-M tuner$U c major_bktr_c Add(Mult($U, 2), 16) 644-}, 644)dnl 546__devitem(pci, pci, PCI bus device)dnl 547_mkdev(pci, pci, {-M pci c major_pci_c 0 600-}, 600)dnl 548__devitem(adb, adb, Apple Desktop bus event interface)dnl 549_mkdev(adb, adb, {-M adb c major_adb_c 0-})dnl 550__devitem(pdc, pdc, PDC device)dnl 551__devitem(gpr, gpr*, GPR400 smartcard reader)dnl 552_mcdev(gpr, gpr*, gpr, {-major_gpr_c-})dnl 553_mkdev(local, local, {-test -s $T.local && sh $T.local-})dnl 554