MAKEDEV.common revision 1.47
1vers(a, {-$OpenBSD: MAKEDEV.common,v 1.47 2010/06/09 16:10:24 todd 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)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 231__devitem(ss, ss*, SCSI scanners)dnl 232_mkdev(ss, ss*, {-M ss$U c major_ss_c Mult($U,16) 640 operator 233 M nss$U c major_ss_c Add(Mult($U,16),1) 640 operator 234 M enss$U c major_ss_c Add(Mult($U,16),3) 640 operator 235 RMlist[${#RMlist[*]}]="scan$U" 236 MKlist[${#MKlist[*]}]=";umask 77;ln -s ss$U scan$U"-})dnl 237dnl XXX see ramdisk above 238__devitem(ramd, ramdisk, Ramdisk kernel devices,nothing)dnl 239dnl 240_mkdev(ramd, ramdisk, {-dnl 241show_target(ramd)dnl 242-})dnl 243dnl 244target(ramd, std)dnl 245target(ramd, bpf, 0)dnl 246twrget(ramd, com, tty0, 0, 1)dnl 247target(ramd, sd, 0, 1, 2, 3, 4)dnl 248target(ramd, wd, 0, 1, 2, 3, 4)dnl 249target(ramd, st, 0, 1)dnl 250target(ramd, cd, 0, 1)dnl 251target(ramd, rd, 0)dnl 252dnl 253__devitem(rd, {-rd*-}, quote(rd)pseudo-disks)dnl 254_mkdev(rd, rd*, {-dodisk2 rd $U major_rd_b major_rd_c $U 0{--}ifstep(rd)-})dnl 255__devitem(xd, xd*, Xylogic 753/7053 disks)dnl 256__devitem(xy, xy*, {- Xylogic 450/451 disks-})dnl 257__devitem(flo, {-fd*-}, {-Floppy disk drives (3 1/2"{-,-} 5 1/4")-},fd)dnl 258_mkdev(flo, fd*, 259{-typnam=$U${i#fd[01]*} 260 case $typnam in 261 0|1) typnum=0;; # no type specified, assume A 262 *A) typnum=0; typnam=0;; 263 *B) typnum=1;; 264 *C) typnum=2;; 265 *D) typnum=3;; 266 *E) typnum=4;; 267 *F) typnum=5;; 268 *G) typnum=6;; 269 *H) typnum=7;; 270 *) echo bad type $typnam for $i; exit 1;; 271 esac 272 case $U in 273 0|1) blk=major_flo_b; chr=major_flo_c;; 274 *) echo bad unit $U for $i; exit 1;; 275 esac 276 nam=fd${typnam} 277 n=Add(Mult($U, 128), Mult($typnum, 16)) 278 M ${nam}a b $blk $n 640 operator 279 M ${nam}b b $blk Add($n, 1) 640 operator 280 M ${nam}c b $blk Add($n, 2) 640 operator 281 M ${nam}i b $blk Add($n, 8) 640 operator 282 M r${nam}a c $chr $n 640 operator 283 M r${nam}b c $chr Add($n, 1) 640 operator 284 M r${nam}c c $chr Add($n, 2) 640 operator 285 M r${nam}i c $chr Add($n, 8) 640 operator-}, 664)dnl 286__devitem(iop, iop*, I2O controller devices)dnl 287_mcdev(iop, iop*, iop, {-major_iop_c-}, 660)dnl 288__devitem(wd, {-wd*-}, {-quote(winchester)disk drives (ST506{-,-} IDE{-,-} ESDI{-,-} RLL{-,-} ...)-})dnl 289__devitem(ccd, ccd*, Concatenated disk devices)dnl 290__devitem(raid, raid*, RAIDframe disk devices)dnl 291__devitem(vnd, vnd*, quote(file)pseudo-disk devices)dnl 292_mkdev(vnd, vnd*, {-dodisk vnd $U major_vnd_b major_vnd_c $U 0{--}ifstep(vnd) 293 dodisk svnd $U major_vnd_b major_vnd_c $U 2048{--}ifstep(vnd)-})dnl 294__devitem(ra, ra*, {-MSCP disks-})dnl 295__devitem(hp, hp*, {-MASSBUS disks-})dnl 296__devitem(hk, hk*, {-UNIBUS RK06 and RK07 disks-})dnl 297__devitem(up, up*, {-Other UNIBUS devices-})dnl 298__devitem(rb, rb*, {-730 IDC w/ RB80 and/or RB02-})dnl 299__devitem(rx, rx*, {-RX02 floppy disks-})dnl 300__devitem(rl, rl*, {-UNIBUS RL02-})dnl 301dnl 302dnl For normal disk devices, add a disk_q entry; anything else define like 303dnl the rest (such as vnd above). 304dnl 305disk_q({-ccd-})dnl 306disk_q({-hd-})dnl 307disk_q({-hk-})dnl 308disk_q({-hp-})dnl 309disk_q({-ra-})dnl 310disk_q({-raid-})dnl 311disk_q({-rb-})dnl 312disk_q({-rl-})dnl 313disk_q({-rx-})dnl 314disk_q({-sd-})dnl 315disk_q({-xy-})dnl 316disk_q({-xd-})dnl 317disk_q({-up-})dnl 318disk_q({-wd-})dnl 319disk_q({-rz-})dnl 320_mkdev({-disks-}, {-undefine({-C_ase-})show_disks()undefine({-C_ase-})-}, 321{-case $i in 322show_disks2()dnl 323 esac-})dnl 324__mkdev({-disks-}){--}dnl 325dnl 326__devtitle(cons, Console ports)dnl 327__devitem(wscons, wscons, Minimal wscons devices)dnl 328twrget(wscons, wscons, ttyC, cfg, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b)dnl 329target(wscons, wsmux)dnl 330target(wscons, wskbd, 0, 1, 2, 3)dnl 331target(wscons, wsmouse, 0, 1, 2, 3)dnl 332_mkdev({-wscons-}, {-wscons-}, {-dnl 333show_target(wscons)dnl 334-})dnl 335__devitem(wsdisp, ttyC-J*, wscons display devices,wsdisplay)dnl 336_mkdev({-wsdisp-}, tty[C-J]*, {-U=${i##tty[C-J]} 337 case $i in 338 ttyC*) n=C m=expr(0*256);; 339 ttyD*) n=D m=expr(1*256);; 340 ttyE*) n=E m=expr(2*256);; 341 ttyF*) n=F m=expr(3*256);; 342 ttyG*) n=G m=expr(4*256);; 343 ttyH*) n=H m=expr(5*256);; 344 ttyI*) n=I m=expr(6*256);; 345 ttyJ*) n=J m=expr(7*256);; 346 esac 347 case $U in 348 [0-9a-f]) M tty$n$U c major_wsdisp_c Add(16#$U, $m) 600;; 349 cfg) M tty${n}cfg c major_wsdisp_c Add(255,$m) 600;; 350 *) echo bad unit $U for $i; exit 1;; 351 esac-})dnl 352__devitem(wskbd, wskbd*, wscons keyboards)dnl 353dnl XXX wskbd[0-9]* instead of wskbd* in case this appears before 354dnl XXX ``wsmux|wsmouse|wskbd'' in the final MAKEDEV. 355_mkdev(wskbd, wskbd[0-9]*, {-M wskbd$U c major_wskbd_c $U 600-})dnl 356__devitem(wsmux, wsmux, wscons keyboard/mouse mux devices)dnl 357_mkdev(wsmux, wsmux|wsmouse|wskbd, {-M wsmouse c major_wsmux_c 0 600 358 M wskbd c major_wsmux_c 1 600-})dnl 359__devitem(pcons, console, PROM console)dnl 360__devtitle(point, Pointing devices)dnl 361__devitem(wsmouse, wsmouse*, wscons mice)dnl 362dnl XXX wsmouse[0-9]* instead of wsmouse* in case this appears before 363dnl XXX ``wsmux|wsmouse|wskbd'' in the final MAKEDEV. 364_mkdev(wsmouse, wsmouse[0-9]*, {-M wsmouse$U c major_wsmouse_c $U 600-})dnl 365__devtitle(pty, Pseudo terminals)dnl 366__devitem(ptm, ptm, pty master device)dnl 367_mkdev(ptm, ptm, {-M ptm c major_ptm_c 0 666-})dnl 368__devitem(tty, tty*, Set of 62 slave pseudo terminals)dnl 369__devitem(pty, pty*, Set of 62 master pseudo terminals)dnl 370_mkdev(pty, pty*, {-if [ $U -gt 15 ]; then 371 echo bad unit for pty in: $i 372 continue 373 fi 374 set -A letters p q r s t u v w x y z P Q R S T 375 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 \ 376 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 \ 377 Y Z 378 379 name=${letters[$U]} 380 n=0 381 while [ $n -lt 62 ] 382 do 383 nam=$name${suffixes[$n]} 384 off=Mult($U, 62) 385 M tty$nam c major_tty_c Add($off, $n) 386 M pty$nam c major_pty_c Add($off, $n) 387 n=Add($n, 1) 388 done-})dnl 389__devitem(dc, dc*, {-4 channel serial interface (keyboard{-,-} mouse{-,-}modem{-,-} printer)-})dnl 390__devitem(drm, drm*, {-Direct Rendering Manager-})dnl 391_mcdev({-drm-}, drm*, {-drm-}, {-major_drm_c-}, 660)dnl 392__devtitle(prn, Printers)dnl 393__devitem(lpt, lpt*, IEEE 1284 centronics printer)dnl 394_mkdev(lpt, lpt*|lpa*, 395{-case $i in 396 lpt*) n=lpt f=0;; 397 lpa*) n=lpa f=128;; 398 esac 399 M $n$U c major_lpt_c Add($U, $f) 600-})dnl 400__devitem(lpa, lpa*, Polled printer port,lpt)dnl 401__devitem(ppi, ppi*, HP-IB plotters)dnl 402__devtitle({-usb-}, USB devices)dnl 403__devitem({-usb-}, usb*, Bus control devices used by usbd for attach/detach)dnl 404_mkdev({-usb-}, usb*, {-[ "$i" = "usb" ] && u= || u=$U 405 M usb$u c major_usb_c $U 660-})dnl 406__devitem(uhid, uhid*, Generic HID devices)dnl 407_mcdev({-uhid-}, uhid*, {-uhid-}, {-major_uhid_c-}, 660)dnl 408__devitem(ulpt, ulpt*, Printer devices)dnl 409_mcdev({-ulpt-}, ulpt*, {-ulpt-}, {-major_ulpt_c-}, 660)dnl 410__devitem(ttyU, ttyU*, USB serial ports,ucom)dnl 411_mkdev({-ttyU-}, {-ttyU[0-9a-zA-Z]-}, {-U=${i#ttyU*} 412 o=$(alph2d $U) 413 M ttyU$U c major_ttyU_c $o 660 dialer uucp 414 M cuaU$U c major_ttyU_c Add($o, 128) 660 dialer uucp-})dnl 415__devitem(urio, urio*, Diamond Multimedia Rio 500)dnl 416_mcdev({-urio-}, urio*, {-urio-}, {-major_urio_c-}, 660)dnl 417__devitem(uscan, uscanner*, Scanners,uscanner)dnl 418_mcdev({-uscan-}, uscanner*, {-uscanner-}, {-major_uscan_c-}, 660)dnl 419__devitem(ugen, ugen*, Generic USB devices)dnl 420_mkdev(ugen, ugen*, {-n=Mult($U, 16) 421 for j in 0{0,1,2,3,4,5,6,7,8,9} 1{0,1,2,3,4,5} 422 do 423 M ugen$U.$j c major_ugen_c Add($n, 10#$j) 660 424 done-})dnl 425__devtitle(call, Call units)dnl 426__devtitle(term, Terminal ports)dnl 427__devitem(dca, dca*, HP200/300 single port serial interface)dnl 428__devitem(dcm, dcm*, HP200/300 4 port serial mux interface)dnl 429__devitem(apci, apci*, HP400 4 port serial mux interface)dnl 430__devitem({-com-}, {-tty[0-7][0-9a-f]-}, NS16x50 serial ports)dnl 431_mkdev(com, {-tty[0-7][0-9a-f]-}, {-U=${i#tty*} 432 o=$(h2d $U) 433 M tty$U c major_com_c $o 660 dialer uucp 434 M cua$U c major_com_c Add($o, 128) 660 dialer uucp-})dnl 435__devitem(ttyc, ttyc*, Cyclades serial ports,cy)dnl 436__devitem(tzs, tty[a-z]*, Zilog 8530 Serial Port,zs)dnl 437_mkdev(tzs, {-tty[a-z]-}, {-u=${i#tty*} 438 case $u in 439 a) n=0 ;; 440 b) n=1 ;; 441 c) n=4 ;; 442 d) n=5 ;; 443 *) echo unknown tty device $i ;; 444 esac 445 M tty$u c major_tzs_c $n 660 dialer uucp-})dnl 446__devitem(tth, ttyh*, Sab82532 serial devices,sab)dnl 447_mkdev(tth, ttyh*, {-M ttyh$U c major_tth_c $U 660 dialer uucp-})dnl 448__devitem(czs, cua[a-z]*, Zilog 8530 Serial Port,zs)dnl 449_mkdev(czs, cua[a-z], {-u=${i#cua*} 450 case $u in 451 a) n=0 ;; 452 b) n=1 ;; 453 c) n=4 ;; 454 d) n=5 ;; 455 *) echo unknown cua device $i ;; 456 esac 457 M cua$u c major_czs_c Add($n, 128) 660 dialer uucp-})dnl 458__devitem(tty0, tty00, Standard serial port,com)dnl 459__devitem(mac_tty0, tty00, Standard serial port,zsc)dnl 460__devitem(ttyz, tty[a-d], On-board zs serial ports,zs)dnl 461__devitem(cuaz, cua[a-d], On-board zs serial ports,zs)dnl 462__devitem(ttyB, ttyB?, DEC 3000 ZS8530 ("scc") serial ports,scc)dnl 463__devitem(scc, scc*, 82530 serial interface,scc)dnl 464__devtitle(spec, Special purpose devices)dnl 465_mkdev(apm, apm*, {-M apm c major_apm_c 0 644 466 M apmctl c major_apm_c 8 644-})dnl 467_mkdev(acpi, acpi*, {-M acpi c major_acpi_c 0 644-})dnl 468__devitem(pctr, pctr*, PC Performance Tuning Register access device)dnl 469_mkdev(pctr, pctr, {-M pctr c major_pctr_c 0 644-})dnl 470__devitem(systrace, systrace*, System call tracing device)dnl 471_mkdev(systrace, systrace, {-M systrace c major_systrace_c 0 644-})dnl 472__devitem(au, audio*, Audio devices,audio)dnl 473_mkdev(au, audio*, {-M sound$U c major_au_c $U 474 M mixer$U c major_au_c Add($U, 16) 475 M audio$U c major_au_c Add($U, 128) 476 M audioctl$U c major_au_c Add($U, 192) 477 MKlist[${#MKlist[*]}]=";[ -e audio ] || ln -s audio$U audio" 478 MKlist[${#MKlist[*]}]=";[ -e mixer ] || ln -s mixer$U mixer" 479 MKlist[${#MKlist[*]}]=";[ -e sound ] || ln -s sound$U sound" 480 MKlist[${#MKlist[*]}]=";[ -e audioctl ] || ln -s audioctl$U audioctl"-})dnl 481__devitem(vi, video*, Video V4L2 devices,video)dnl 482_mkdev(vi, video*, {-M video$U c major_vi_c $U 483 MKlist[${#MKlist[*]}]=";[ -e video ] || ln -s video$U video"-})dnl 484__devitem(asc, asc*, ASC Audio device)dnl 485_mkdev(asc, asc*, {-M asc$U major_asc_c 0-})dnl 486__devitem(bio, bio, {-ioctl tunnel pseudo-device-})dnl 487_mkdev(bio, bio, {-M bio c major_bio_c 0 600-})dnl 488__devitem(music, music*, MIDI sequencer,music)dnl 489_mkdev(music, music*, {-M music$U c major_music_c $U 490 M sequencer$U c major_music_c Add($U, 128) 491 MKlist[${#MKlist[*]}]=";[ -e music ] || ln -s music$U music" 492 MKlist[${#MKlist[*]}]=";[ -e sequencer ] || ln -s sequencer$U sequencer"-})dnl 493__devitem(radio, radio*, FM tuner devices)dnl 494_mkdev(radio, radio*, {-M radio$U c major_radio_c $U 495 MKlist[${#MKlist[*]}]=";[ -e radio ] || ln -s radio$U radio"-})dnl 496__devitem(fdesc, fd, fd/* nodes, fd)dnl 497_mkdev(fdesc, fd, {-RMlist[${#RMlist[*]}]=";mkdir -p fd;rm -f" n=0 498 while [ $n -lt 64 ];do M fd/$n c major_fdesc_c $n;n=Add($n, 1);done 499 MKlist[${#MKlist[*]}]=";chmod 555 fd"-})dnl 500__devitem(grf_mac, grf*, Raw interface to the mac68k graphics devices,grf)dnl 501__devitem(oppr, openprom,PROM settings,openprom)dnl 502_cdev(oppr, openprom, 70, 0)dnl 503__devitem(cry, crypto, Hardware crypto access driver,crypto)dnl 504_mkdev(cry, crypto, {-M crypto c major_cry_c-} 0)dnl 505__devitem(pf, pf*, Packet Filter)dnl 506_mkdev(pf, {-pf*-}, {-M pf c major_pf_c 0 600-})dnl 507__devitem(bpf, bpf*, Berkeley Packet Filter)dnl 508_mkdev(bpf, {-bpf*-}, {-M bpf$U c major_bpf_c $U 600-}, 600)dnl 509_mkdev(tun, {-tun*-}, {-M tun$U c major_tun_c $U 600-}, 600)dnl 510__devitem(speak, speaker, PC speaker,spkr)dnl 511_mkdev(speak, speaker, {-M speaker c major_speak_c 0 600-})dnl 512__devitem(lkm, lkm, Loadable kernel modules interface)dnl 513_cdev(lkm, lkm, {-major_lkm_c-}, 0, 640, _lkm)dnl 514__devitem(tun, tun*, Network tunnel driver)dnl 515__devitem(rnd, *random, In-kernel random data source,random)dnl 516_mkdev(rnd, *random, {-n=0 517 for pre in " " s u a 518 do 519 M ${pre}random c major_rnd_c $n 644 520 n=Add($n, 1) 521 done-}, 644)dnl 522__devitem(joy, joy*, Joystick driver)dnl 523_mcdev(joy, joy*, joy, {-major_joy_c-}, 666)dnl 524__devitem(mag, magma*, Magma multiport cards,magma)dnl 525__devitem(bppmag, bppmag[mno], Magma parallel port,magma)dnl 526__devitem(spif, spif*, quote(spif)multiport cards)dnl 527__devitem(bppsp, bpp[jkl], quote(spif)parallel port,spif)dnl 528_mkdev(mag, magma*, {-case $U in 529 0) offset=0 nam=m;; 530 1) offset=16 nam=n;; 531 2) offset=32 nam=o;; 532 *) echo "bad unit for $i: $U"; exit 127;; 533 esac 534 offset=Mult($U, 64) 535 n=0 536 while [ $n -lt 16 ] 537 do 538 name=${nam}`hex $n` 539 M tty$name c major_mag_c Add($offset, $n) 660 dialer uucp 540 n=Add($n, 1) 541 done 542 M bpp${nam}0 c major_bppmag_c Add($offset, 0) 600 543 M bpp${nam}1 c major_bppmag_c Add($offset, 1) 600-})dnl 544_mkdev(spif, spif*, {-case $U in 545 0) offset=0 nam=j;; 546 1) offset=16 nam=k;; 547 2) offset=32 nam=l;; 548 *) echo "bad unit for $i: $U"; exit 127;; 549 esac 550 offset=Mult($U, 64) 551 n=0 552 while [ $n -lt 8 ] 553 do 554 name=${nam}`hex $n` 555 M tty$name c major_spif_c Add($offset, $n) 660 dialer uucp 556 n=Add($n, 1) 557 done 558 M bpp${nam}0 c major_bppsp_c Add($offset, 0) 600-})dnl 559__devitem(bpp, bpp*, Parallel port)dnl 560_mkdev(bpp, {-bpp*-}, {-M bpp$U c major_bpp_c $U 600-}, 600)dnl 561__devitem(nnpfs, nnpfs*, NNPFS filesystem node, mount_nnpfs 8)dnl 562__devitem(vscsi, vscsi*, Virtual SCSI controller, vscsi 8)dnl 563_mcdev(nnpfs, nnpfs*, nnpfs, {-major_nnpfs_c-}, 600)dnl 564_mcdev(vscsi, vscsi*, vscsi, {-major_vscsi_c-}, 600)dnl 565__devitem(rmidi, rmidi*, Raw MIDI devices,midi)dnl 566_mcdev(rmidi, rmidi*, rmidi, {-major_rmidi_c-}, 666)dnl 567__devitem(diskmap, diskmap, Disk mapper, diskmap)dnl 568_mkdev(diskmap, diskmap, {-M diskmap b major_diskmap_c 0 640 operator-})dnl 569__devtitle(plat, Platform-specific devices)dnl 570__devitem(bktr, bktr*, Video frame grabbers)dnl 571_mcdev(bktr, bktr*, bktr, {-major_bktr_c-}, 644)dnl 572__devitem(tuner, tuner*, Tuner devices, bktr)dnl 573_mkdev(tuner, tuner*, {-M tuner$U c major_bktr_c Add(Mult($U, 2), 16) 644-}, 644)dnl 574__devitem(pci, pci*, PCI bus devices)dnl 575_mkdev(pci, pci*, {-M pci$U c major_pci_c $U 600 576 MKlist[${#MKlist[*]}]=";[ -h pci ] || ln -sf pci0 pci"-})dnl 577__devitem(adb, adb, Apple Desktop bus event interface)dnl 578_mkdev(adb, adb, {-M adb c major_adb_c 0-})dnl 579__devitem(pdc, pdc, PDC device)dnl 580__devitem(gpr, gpr*, GPR400 smartcard reader)dnl 581_mcdev(gpr, gpr*, gpr, {-major_gpr_c-})dnl 582__devitem(hotplug, hotplug, devices hot plugging)dnl 583_mkdev(hotplug, hotplug, {-M hotplug c major_hotplug_c $U 400-})dnl 584__devitem(gpio, gpio*, General Purpose Input/Output)dnl 585_mcdev(gpio, gpio*, gpio, {-major_gpio_c-}, 600)dnl 586_mkdev(local, local, {-test -s $T.local && sh $T.local-})dnl 587