1 /* conf.c 1.2 86/01/05 */ 2 3 #include "param.h" 4 #include "systm.h" 5 #include "buf.h" 6 #include "ioctl.h" 7 #include "tty.h" 8 #include "conf.h" 9 10 int nulldev(); 11 int nodev(); 12 13 /* #include "ud.h" */ 14 #if NUD > 0 15 int udopen(),udstrategy(),udread(),udwrite(),uddump(),udioctl(),udsize(); 16 #else 17 #define udopen nodev 18 #define udstrategy nodev 19 #define udread nodev 20 #define udwrite nodev 21 #define uddump nodev 22 #define udioctl nodev 23 #define udsize 0 24 #endif 25 26 #include "fsd.h" 27 #if NVD > 0 28 int vdopen(),vdstrategy(),vdread(),vdwrite(),vddump(),vdsize(); 29 #else 30 #define vdopen nodev 31 #define vdstrategy nodev 32 #define vdread nodev 33 #define vdwrite nodev 34 #define vddump nodev 35 #define vdsize 0 36 #endif 37 38 #define NXP 0 39 #if NXP > 0 40 int xpopen(),xpstrategy(),xpread(),xpwrite(),xpdump(),xpioctl(),xpsize(); 41 #else 42 #define xpopen nodev 43 #define xpstrategy nodev 44 #define xpread nodev 45 #define xpwrite nodev 46 #define xpdump nodev 47 #define xpioctl nodev 48 #define xpsize 0 49 #endif 50 51 #include "cy.h" 52 #if NCY > 0 53 int cyopen(),cyclose(),cystrategy(),cyread(),cywrite(),cydump(),cyioctl(),cyreset(); 54 #else 55 #define cyopen nodev 56 #define cyclose nodev 57 #define cystrategy nodev 58 #define cyread nodev 59 #define cywrite nodev 60 #define cydump nodev 61 #define cyioctl nodev 62 #define cyreset nulldev 63 #endif 64 65 int swstrategy(),swread(),swwrite(); 66 67 struct bdevsw bdevsw[] = 68 { 69 { udopen, nulldev, udstrategy, uddump, /*0*/ 70 udsize, 0 }, 71 { vdopen, nulldev, vdstrategy, vddump, /*1*/ 72 vdsize, 0 }, 73 { xpopen, nulldev, xpstrategy, xpdump, /*2*/ 74 xpsize, 0 }, 75 { cyopen, cyclose, cystrategy, cydump, /*3*/ 76 0, B_TAPE }, 77 { nodev, nodev, swstrategy, nodev, /*4*/ 78 0, 0 }, 79 }; 80 int nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]); 81 82 int cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(); 83 extern struct tty cons; 84 85 #include "vx.h" 86 #if NVX == 0 87 #define vxopen nodev 88 #define vxclose nodev 89 #define vxread nodev 90 #define vxwrite nodev 91 #define vxioctl nodev 92 #define vxstop nodev 93 #define vxreset nulldev 94 #define vx_tty 0 95 #else 96 int vxopen(),vxclose(),vxread(),vxwrite(),vxioctl(),vxstop(),vxreset(); 97 struct tty vx_tty[]; 98 #endif 99 100 int syopen(),syread(),sywrite(),syioctl(),syselect(); 101 102 int mmread(),mmwrite(); 103 #define mmselect seltrue 104 105 #include "pty.h" 106 #if NPTY > 0 107 int ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop(); 108 int ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect(); 109 int ptyioctl(); 110 struct tty pt_tty[]; 111 #else 112 #define ptsopen nodev 113 #define ptsclose nodev 114 #define ptsread nodev 115 #define ptswrite nodev 116 #define ptcopen nodev 117 #define ptcclose nodev 118 #define ptcread nodev 119 #define ptcwrite nodev 120 #define ptyioctl nodev 121 #define pt_tty 0 122 #define ptcselect nodev 123 #define ptsstop nulldev 124 #endif 125 126 #include "vbsc.h" 127 #if NVBSC > 0 128 int bscopen(), bscclose(), bscread(), bscwrite(), bscioctl(); 129 int bsmopen(),bsmclose(),bsmread(),bsmwrite(),bsmioctl(); 130 int bstopen(),bstclose(),bstread(),bstioctl(); 131 #else 132 #define bscopen nodev 133 #define bscclose nodev 134 #define bscread nodev 135 #define bscwrite nodev 136 #define bscioctl nodev 137 #define bsmopen nodev 138 #define bsmclose nodev 139 #define bsmread nodev 140 #define bsmwrite nodev 141 #define bsmioctl nodev 142 #define bstopen nodev 143 #define bstclose nodev 144 #define bstread nodev 145 #define bstwrite nodev 146 #define bstioctl nodev 147 #endif 148 149 #if NII > 0 150 int iiioctl(), iiclose(), iiopen(); 151 #else 152 #define iiopen nodev 153 #define iiclose nodev 154 #define iiioctl nodev 155 #endif 156 157 #include "ps.h" 158 #if NPS > 0 159 int psopen(),psclose(),psread(),pswrite(),psioctl(),psreset(); 160 #else 161 #define psopen nodev 162 #define psclose nodev 163 #define psread nodev 164 #define pswrite nodev 165 #define psopen nodev 166 #define psioctl nodev 167 #define psreset nodev 168 #endif 169 170 #include "efs.h" 171 #if NEFS > 0 172 int efsopen(),efsfgen(),efsread(),efswrite(),efsioctl(),efsreset(); 173 #else 174 #define efsopen nodev 175 #define efsfgen nodev 176 #define efsread nodev 177 #define efswrite nodev 178 #define efsioctl nodev 179 #define efsreset nodev 180 #endif 181 182 int logopen(),logclose(),logread(),logioctl(),logselect(); 183 184 int ttselect(), seltrue(); 185 186 struct cdevsw cdevsw[] = 187 { 188 cnopen, cnclose, cnread, cnwrite, /*0*/ 189 cnioctl, nulldev, nulldev, &cons, 190 ttselect, nodev, 191 vxopen, vxclose, vxread, vxwrite, /*1*/ 192 vxioctl, vxstop, vxreset, vx_tty, 193 ttselect, nodev, 194 syopen, nulldev, syread, sywrite, /*2*/ 195 syioctl, nulldev, nulldev, 0, 196 syselect, nodev, 197 nulldev, nulldev, mmread, mmwrite, /*3*/ 198 nodev, nulldev, nulldev, 0, 199 mmselect, nodev, 200 udopen, nulldev, udread, udwrite, /*4*/ 201 udioctl, nodev, nulldev, 0, 202 seltrue, nodev, 203 vdopen, nulldev, vdread, vdwrite, /*5*/ 204 nodev, nodev, nulldev, 0, 205 seltrue, nodev, 206 xpopen, nulldev, xpread, xpwrite, /*6*/ 207 xpioctl, nodev, nulldev, 0, 208 seltrue, nodev, 209 cyopen, cyclose, cyread, cywrite, /*7*/ 210 cyioctl, nodev, cyreset, 0, 211 seltrue, nodev, 212 nulldev, nulldev, swread, swwrite, /*8*/ 213 nodev, nodev, nulldev, 0, 214 nodev, nodev, 215 ptsopen, ptsclose, ptsread, ptswrite, /*9*/ 216 ptyioctl, ptsstop, nodev, pt_tty, 217 ttselect, nodev, 218 ptcopen, ptcclose, ptcread, ptcwrite, /*10*/ 219 ptyioctl, nulldev, nodev, pt_tty, 220 ptcselect, nodev, 221 bscopen, bscclose, bscread, bscwrite, /*11*/ 222 bscioctl, nodev, nulldev, 0, 223 nodev, nodev, 224 bsmopen, bsmclose, bsmread, bsmwrite, /*12*/ 225 bsmioctl, nodev, nulldev, 0, 226 nodev, nodev, 227 bstopen, bstclose, bstread, nodev, /*13*/ 228 bstioctl, nodev, nulldev, 0, 229 nodev, nodev, 230 iiopen, iiclose, nulldev, nulldev, /*14*/ 231 iiioctl, nulldev, nulldev, 0, 232 seltrue, nodev, 233 logopen, logclose, logread, nodev, /*15*/ 234 logioctl, nodev, nulldev, 0, 235 logselect, nodev, 236 nodev, nodev, nulldev, nulldev, /*16*/ 237 nodev, nodev, nulldev, 0, 238 nodev, nodev, 239 nodev, nodev, nulldev, nulldev, /*17*/ 240 nodev, nodev, nulldev, 0, 241 nodev, nodev, 242 nodev, nodev, nulldev, nulldev, /*18*/ 243 nodev, nodev, nulldev, 0, 244 nodev, nodev, 245 nodev, nodev, nulldev, nulldev, /*19*/ 246 nodev, nodev, nulldev, 0, 247 nodev, nodev, 248 /* 20-30 are reserved for local use */ 249 psopen, psclose, psread, pswrite, /*20*/ 250 psioctl, nodev, psreset, 0, 251 seltrue, nodev, 252 efsopen, efsfgen, efsread, efswrite, /*21*/ 253 efsioctl, nodev, efsreset, 0, 254 seltrue, nodev, 255 }; 256 int nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]); 257 258 int mem_no = 3; /* major device number of memory special file */ 259 260 /* 261 * Swapdev is a fake device implemented 262 * in sw.c used only internally to get to swstrategy. 263 * It cannot be provided to the users, because the 264 * swstrategy routine munches the b_dev and b_blkno entries 265 * before calling the appropriate driver. This would horribly 266 * confuse, e.g. the hashing routines. Instead, /dev/drum is 267 * provided as a character (raw) device. 268 */ 269 dev_t swapdev = makedev(4, 0); 270