1*25678Ssam /* conf.c 1.2 86/01/05 */ 224042Ssam 3*25678Ssam #include "param.h" 4*25678Ssam #include "systm.h" 5*25678Ssam #include "buf.h" 6*25678Ssam #include "ioctl.h" 7*25678Ssam #include "tty.h" 8*25678Ssam #include "conf.h" 924042Ssam 1024042Ssam int nulldev(); 1124042Ssam int nodev(); 1224042Ssam 1324042Ssam /* #include "ud.h" */ 1424042Ssam #if NUD > 0 1524042Ssam int udopen(),udstrategy(),udread(),udwrite(),uddump(),udioctl(),udsize(); 1624042Ssam #else 1724042Ssam #define udopen nodev 1824042Ssam #define udstrategy nodev 1924042Ssam #define udread nodev 2024042Ssam #define udwrite nodev 2124042Ssam #define uddump nodev 2224042Ssam #define udioctl nodev 2324042Ssam #define udsize 0 2424042Ssam #endif 2524042Ssam 2624042Ssam #include "fsd.h" 2724042Ssam #if NVD > 0 2824042Ssam int vdopen(),vdstrategy(),vdread(),vdwrite(),vddump(),vdsize(); 2924042Ssam #else 3024042Ssam #define vdopen nodev 3124042Ssam #define vdstrategy nodev 3224042Ssam #define vdread nodev 3324042Ssam #define vdwrite nodev 3424042Ssam #define vddump nodev 3524042Ssam #define vdsize 0 3624042Ssam #endif 3724042Ssam 3824042Ssam #define NXP 0 3924042Ssam #if NXP > 0 4024042Ssam int xpopen(),xpstrategy(),xpread(),xpwrite(),xpdump(),xpioctl(),xpsize(); 4124042Ssam #else 4224042Ssam #define xpopen nodev 4324042Ssam #define xpstrategy nodev 4424042Ssam #define xpread nodev 4524042Ssam #define xpwrite nodev 4624042Ssam #define xpdump nodev 4724042Ssam #define xpioctl nodev 4824042Ssam #define xpsize 0 4924042Ssam #endif 5024042Ssam 5124042Ssam #include "cy.h" 5224042Ssam #if NCY > 0 5324042Ssam int cyopen(),cyclose(),cystrategy(),cyread(),cywrite(),cydump(),cyioctl(),cyreset(); 5424042Ssam #else 5524042Ssam #define cyopen nodev 5624042Ssam #define cyclose nodev 5724042Ssam #define cystrategy nodev 5824042Ssam #define cyread nodev 5924042Ssam #define cywrite nodev 6024042Ssam #define cydump nodev 6124042Ssam #define cyioctl nodev 6224042Ssam #define cyreset nulldev 6324042Ssam #endif 6424042Ssam 6524042Ssam int swstrategy(),swread(),swwrite(); 6624042Ssam 6724042Ssam struct bdevsw bdevsw[] = 6824042Ssam { 6924042Ssam { udopen, nulldev, udstrategy, uddump, /*0*/ 7024042Ssam udsize, 0 }, 7124042Ssam { vdopen, nulldev, vdstrategy, vddump, /*1*/ 7224042Ssam vdsize, 0 }, 7324042Ssam { xpopen, nulldev, xpstrategy, xpdump, /*2*/ 7424042Ssam xpsize, 0 }, 7524042Ssam { cyopen, cyclose, cystrategy, cydump, /*3*/ 7624042Ssam 0, B_TAPE }, 7724042Ssam { nodev, nodev, swstrategy, nodev, /*4*/ 7824042Ssam 0, 0 }, 7924042Ssam }; 8024042Ssam int nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]); 8124042Ssam 8224042Ssam int cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(); 83*25678Ssam extern struct tty cons; 8424042Ssam 8524042Ssam #include "vx.h" 8624042Ssam #if NVX == 0 8724042Ssam #define vxopen nodev 8824042Ssam #define vxclose nodev 8924042Ssam #define vxread nodev 9024042Ssam #define vxwrite nodev 9124042Ssam #define vxioctl nodev 9224042Ssam #define vxstop nodev 9324042Ssam #define vxreset nulldev 9424042Ssam #define vx_tty 0 9524042Ssam #else 9624042Ssam int vxopen(),vxclose(),vxread(),vxwrite(),vxioctl(),vxstop(),vxreset(); 9724042Ssam struct tty vx_tty[]; 9824042Ssam #endif 9924042Ssam 10024042Ssam int syopen(),syread(),sywrite(),syioctl(),syselect(); 10124042Ssam 10224042Ssam int mmread(),mmwrite(); 10324042Ssam #define mmselect seltrue 10424042Ssam 10524042Ssam #include "pty.h" 10624042Ssam #if NPTY > 0 10724042Ssam int ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop(); 10824042Ssam int ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect(); 10924042Ssam int ptyioctl(); 11024042Ssam struct tty pt_tty[]; 11124042Ssam #else 11224042Ssam #define ptsopen nodev 11324042Ssam #define ptsclose nodev 11424042Ssam #define ptsread nodev 11524042Ssam #define ptswrite nodev 11624042Ssam #define ptcopen nodev 11724042Ssam #define ptcclose nodev 11824042Ssam #define ptcread nodev 11924042Ssam #define ptcwrite nodev 12024042Ssam #define ptyioctl nodev 12124042Ssam #define pt_tty 0 12224042Ssam #define ptcselect nodev 12324042Ssam #define ptsstop nulldev 12424042Ssam #endif 12524042Ssam 12624042Ssam #include "vbsc.h" 12724042Ssam #if NVBSC > 0 12824042Ssam int bscopen(), bscclose(), bscread(), bscwrite(), bscioctl(); 12924042Ssam int bsmopen(),bsmclose(),bsmread(),bsmwrite(),bsmioctl(); 13024042Ssam int bstopen(),bstclose(),bstread(),bstioctl(); 13124042Ssam #else 13224042Ssam #define bscopen nodev 13324042Ssam #define bscclose nodev 13424042Ssam #define bscread nodev 13524042Ssam #define bscwrite nodev 13624042Ssam #define bscioctl nodev 13724042Ssam #define bsmopen nodev 13824042Ssam #define bsmclose nodev 13924042Ssam #define bsmread nodev 14024042Ssam #define bsmwrite nodev 14124042Ssam #define bsmioctl nodev 14224042Ssam #define bstopen nodev 14324042Ssam #define bstclose nodev 14424042Ssam #define bstread nodev 14524042Ssam #define bstwrite nodev 14624042Ssam #define bstioctl nodev 14724042Ssam #endif 14824042Ssam 14924042Ssam #if NII > 0 15024042Ssam int iiioctl(), iiclose(), iiopen(); 15124042Ssam #else 15224042Ssam #define iiopen nodev 15324042Ssam #define iiclose nodev 15424042Ssam #define iiioctl nodev 15524042Ssam #endif 15624042Ssam 15724042Ssam #include "ps.h" 15824042Ssam #if NPS > 0 15924042Ssam int psopen(),psclose(),psread(),pswrite(),psioctl(),psreset(); 16024042Ssam #else 16124042Ssam #define psopen nodev 16224042Ssam #define psclose nodev 16324042Ssam #define psread nodev 16424042Ssam #define pswrite nodev 16524042Ssam #define psopen nodev 16624042Ssam #define psioctl nodev 16724042Ssam #define psreset nodev 16824042Ssam #endif 16924042Ssam 17024042Ssam #include "efs.h" 17124042Ssam #if NEFS > 0 17224042Ssam int efsopen(),efsfgen(),efsread(),efswrite(),efsioctl(),efsreset(); 17324042Ssam #else 17424042Ssam #define efsopen nodev 17524042Ssam #define efsfgen nodev 17624042Ssam #define efsread nodev 17724042Ssam #define efswrite nodev 17824042Ssam #define efsioctl nodev 17924042Ssam #define efsreset nodev 18024042Ssam #endif 18124042Ssam 182*25678Ssam int logopen(),logclose(),logread(),logioctl(),logselect(); 183*25678Ssam 18424042Ssam int ttselect(), seltrue(); 18524042Ssam 18624042Ssam struct cdevsw cdevsw[] = 18724042Ssam { 18824042Ssam cnopen, cnclose, cnread, cnwrite, /*0*/ 189*25678Ssam cnioctl, nulldev, nulldev, &cons, 19024042Ssam ttselect, nodev, 19124042Ssam vxopen, vxclose, vxread, vxwrite, /*1*/ 19224042Ssam vxioctl, vxstop, vxreset, vx_tty, 19324042Ssam ttselect, nodev, 19424042Ssam syopen, nulldev, syread, sywrite, /*2*/ 19524042Ssam syioctl, nulldev, nulldev, 0, 19624042Ssam syselect, nodev, 19724042Ssam nulldev, nulldev, mmread, mmwrite, /*3*/ 19824042Ssam nodev, nulldev, nulldev, 0, 19924042Ssam mmselect, nodev, 20024042Ssam udopen, nulldev, udread, udwrite, /*4*/ 20124042Ssam udioctl, nodev, nulldev, 0, 20224042Ssam seltrue, nodev, 20324042Ssam vdopen, nulldev, vdread, vdwrite, /*5*/ 20424042Ssam nodev, nodev, nulldev, 0, 20524042Ssam seltrue, nodev, 20624042Ssam xpopen, nulldev, xpread, xpwrite, /*6*/ 20724042Ssam xpioctl, nodev, nulldev, 0, 20824042Ssam seltrue, nodev, 20924042Ssam cyopen, cyclose, cyread, cywrite, /*7*/ 21024042Ssam cyioctl, nodev, cyreset, 0, 21124042Ssam seltrue, nodev, 21224042Ssam nulldev, nulldev, swread, swwrite, /*8*/ 21324042Ssam nodev, nodev, nulldev, 0, 21424042Ssam nodev, nodev, 21524042Ssam ptsopen, ptsclose, ptsread, ptswrite, /*9*/ 21624042Ssam ptyioctl, ptsstop, nodev, pt_tty, 21724042Ssam ttselect, nodev, 21824042Ssam ptcopen, ptcclose, ptcread, ptcwrite, /*10*/ 21924042Ssam ptyioctl, nulldev, nodev, pt_tty, 22024042Ssam ptcselect, nodev, 22124042Ssam bscopen, bscclose, bscread, bscwrite, /*11*/ 22224042Ssam bscioctl, nodev, nulldev, 0, 22324042Ssam nodev, nodev, 22424042Ssam bsmopen, bsmclose, bsmread, bsmwrite, /*12*/ 22524042Ssam bsmioctl, nodev, nulldev, 0, 22624042Ssam nodev, nodev, 22724042Ssam bstopen, bstclose, bstread, nodev, /*13*/ 22824042Ssam bstioctl, nodev, nulldev, 0, 22924042Ssam nodev, nodev, 23024042Ssam iiopen, iiclose, nulldev, nulldev, /*14*/ 23124042Ssam iiioctl, nulldev, nulldev, 0, 23224042Ssam seltrue, nodev, 233*25678Ssam logopen, logclose, logread, nodev, /*15*/ 234*25678Ssam logioctl, nodev, nulldev, 0, 235*25678Ssam logselect, nodev, 23624042Ssam nodev, nodev, nulldev, nulldev, /*16*/ 23724042Ssam nodev, nodev, nulldev, 0, 23824042Ssam nodev, nodev, 23924042Ssam nodev, nodev, nulldev, nulldev, /*17*/ 24024042Ssam nodev, nodev, nulldev, 0, 24124042Ssam nodev, nodev, 24224042Ssam nodev, nodev, nulldev, nulldev, /*18*/ 24324042Ssam nodev, nodev, nulldev, 0, 24424042Ssam nodev, nodev, 24524042Ssam nodev, nodev, nulldev, nulldev, /*19*/ 24624042Ssam nodev, nodev, nulldev, 0, 24724042Ssam nodev, nodev, 24824042Ssam /* 20-30 are reserved for local use */ 24924042Ssam psopen, psclose, psread, pswrite, /*20*/ 25024042Ssam psioctl, nodev, psreset, 0, 25124042Ssam seltrue, nodev, 25224042Ssam efsopen, efsfgen, efsread, efswrite, /*21*/ 25324042Ssam efsioctl, nodev, efsreset, 0, 25424042Ssam seltrue, nodev, 25524042Ssam }; 25624042Ssam int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]); 25724042Ssam 25824042Ssam int mem_no = 3; /* major device number of memory special file */ 25924042Ssam 26024042Ssam /* 26124042Ssam * Swapdev is a fake device implemented 26224042Ssam * in sw.c used only internally to get to swstrategy. 26324042Ssam * It cannot be provided to the users, because the 26424042Ssam * swstrategy routine munches the b_dev and b_blkno entries 26524042Ssam * before calling the appropriate driver. This would horribly 26624042Ssam * confuse, e.g. the hashing routines. Instead, /dev/drum is 26724042Ssam * provided as a character (raw) device. 26824042Ssam */ 26924042Ssam dev_t swapdev = makedev(4, 0); 270