Commit | Line | Data |
---|---|---|
a0eab615 | 1 | /* conf.c 4.25 %G% */ |
72931ae2 BJ |
2 | |
3 | #include "../h/param.h" | |
4 | #include "../h/systm.h" | |
5 | #include "../h/buf.h" | |
6 | #include "../h/tty.h" | |
7 | #include "../h/conf.h" | |
8 | #include "../h/text.h" | |
9 | #include "../h/dir.h" | |
10 | #include "../h/user.h" | |
11 | #include "../h/proc.h" | |
12 | #include "../h/file.h" | |
13 | #include "../h/inode.h" | |
14 | #include "../h/acct.h" | |
50d6c155 | 15 | #include "../h/pte.h" |
72931ae2 BJ |
16 | |
17 | int nulldev(); | |
18 | int nodev(); | |
19 | ||
f139469d | 20 | #include "hp.h" |
b06d1b78 | 21 | #if NHP > 0 |
be0c5f67 | 22 | int hpstrategy(),hpread(),hpwrite(),hpintr(),hpdump(); |
b06d1b78 BJ |
23 | #else |
24 | #define hpstrategy nodev | |
25 | #define hpread nodev | |
26 | #define hpwrite nodev | |
27 | #define hpintr nodev | |
be0c5f67 | 28 | #define hpdump nodev |
b06d1b78 | 29 | #endif |
72931ae2 | 30 | |
b721b0ed | 31 | #include "tu.h" |
b06d1b78 | 32 | #if NHT > 0 |
a0eab615 | 33 | int htopen(),htclose(),htstrategy(),htread(),htwrite(),htdump(),htioctl(); |
b06d1b78 BJ |
34 | #else |
35 | #define htopen nodev | |
36 | #define htclose nodev | |
37 | #define htstrategy nodev | |
38 | #define htread nodev | |
39 | #define htwrite nodev | |
a0eab615 BJ |
40 | #define htdump nodev |
41 | #define htioctl nodev | |
b06d1b78 BJ |
42 | #endif |
43 | ||
f139469d | 44 | #include "rk.h" |
d8b52bbe | 45 | #if NHK > 0 |
d828b073 | 46 | int rkstrategy(),rkread(),rkwrite(),rkintr(),rkdump(),rkreset(); |
c538db7b BJ |
47 | #else |
48 | #define rkstrategy nodev | |
49 | #define rkread nodev | |
50 | #define rkwrite nodev | |
51 | #define rkintr nodev | |
be0c5f67 | 52 | #define rkdump nodev |
d828b073 | 53 | #define rkreset nodev |
c538db7b BJ |
54 | #endif |
55 | ||
443c8066 | 56 | #include "te.h" |
d8b52bbe | 57 | #if NTM > 0 |
a0eab615 BJ |
58 | int tmopen(),tmclose(),tmstrategy(),tmread(),tmwrite(); |
59 | int tmioctl(),tmdump(),tmreset(); | |
9286b949 BJ |
60 | #else |
61 | #define tmopen nodev | |
62 | #define tmclose nodev | |
63 | #define tmstrategy nodev | |
64 | #define tmread nodev | |
65 | #define tmwrite nodev | |
ffdeecee | 66 | #define tmioctl nodev |
be0c5f67 | 67 | #define tmdump nodev |
a0eab615 | 68 | #define tmreset nodev |
9286b949 BJ |
69 | #endif |
70 | ||
c538db7b BJ |
71 | #define tsopen nodev |
72 | #define tsclose nodev | |
73 | #define tsstrategy nodev | |
74 | #define tsread nodev | |
75 | #define tswrite nodev | |
be0c5f67 | 76 | #define tsdump nodev |
9286b949 | 77 | |
f139469d | 78 | #include "up.h" |
d8b52bbe | 79 | #if NSC > 0 |
be0c5f67 | 80 | int upstrategy(),upread(),upwrite(),upreset(),updump(); |
b06d1b78 BJ |
81 | #else |
82 | #define upstrategy nodev | |
83 | #define upread nodev | |
84 | #define upwrite nodev | |
85 | #define upreset nulldev | |
be0c5f67 | 86 | #define updump nodev |
b06d1b78 | 87 | #endif |
72931ae2 | 88 | |
b1f139da BJ |
89 | int swstrategy(),swread(),swwrite(); |
90 | ||
72931ae2 BJ |
91 | struct bdevsw bdevsw[] = |
92 | { | |
649b7d6e RE |
93 | nulldev, nulldev, hpstrategy, hpdump, 0, /*0*/ |
94 | htopen, htclose, htstrategy, htdump, B_TAPE, /*1*/ | |
95 | nulldev, nulldev, upstrategy, updump, 0, /*2*/ | |
96 | nulldev, nulldev, rkstrategy, rkdump, 0, /*3*/ | |
be0c5f67 | 97 | nodev, nodev, swstrategy, nodev, 0, /*4*/ |
649b7d6e RE |
98 | tmopen, tmclose, tmstrategy, tmdump, B_TAPE, /*5*/ |
99 | tsopen, tsclose, tsstrategy, tsdump, B_TAPE, /*6*/ | |
72931ae2 BJ |
100 | 0, |
101 | }; | |
102 | ||
3cbabb27 | 103 | int cnopen(),cnclose(),cnread(),cnwrite(),cnioctl(); |
c538db7b | 104 | struct tty cons; |
72931ae2 | 105 | |
f139469d | 106 | #include "ct.h" |
cc0e2de8 BJ |
107 | #if NCT > 0 |
108 | int ctopen(),ctclose(),ctwrite(); | |
109 | #else | |
110 | #define ctopen nulldev | |
111 | #define ctclose nulldev | |
112 | #define ctwrite nulldev | |
113 | #endif | |
114 | ||
f139469d | 115 | #include "dh.h" |
d8b52bbe | 116 | #if NDH == 0 |
b06d1b78 BJ |
117 | #define dhopen nodev |
118 | #define dhclose nodev | |
119 | #define dhread nodev | |
120 | #define dhwrite nodev | |
121 | #define dhioctl nodev | |
122 | #define dhstop nodev | |
123 | #define dhreset nulldev | |
124 | #define dh11 0 | |
125 | #else | |
3cbabb27 | 126 | int dhopen(),dhclose(),dhread(),dhwrite(),dhioctl(),dhstop(),dhreset(); |
72931ae2 | 127 | struct tty dh11[]; |
b06d1b78 | 128 | #endif |
72931ae2 | 129 | |
c9e9b65b | 130 | #if VAX780 |
3cbabb27 | 131 | int flopen(),flclose(),flread(),flwrite(); |
c538db7b BJ |
132 | #endif |
133 | ||
f139469d | 134 | #include "dz.h" |
d8b52bbe | 135 | #if NDZ == 0 |
b06d1b78 BJ |
136 | #define dzopen nodev |
137 | #define dzclose nodev | |
138 | #define dzread nodev | |
139 | #define dzwrite nodev | |
140 | #define dzioctl nodev | |
141 | #define dzstop nodev | |
142 | #define dzreset nulldev | |
143 | #define dz_tty 0 | |
144 | #else | |
3cbabb27 | 145 | int dzopen(),dzclose(),dzread(),dzwrite(),dzioctl(),dzstop(),dzreset(); |
72931ae2 | 146 | struct tty dz_tty[]; |
b06d1b78 | 147 | #endif |
72931ae2 | 148 | |
be0c5f67 BJ |
149 | #include "lp.h" |
150 | #if NLP > 0 | |
151 | int lpopen(),lpclose(),lpwrite(),lpioctl(),lpreset(); | |
152 | #else | |
153 | #define lpopen nodev | |
154 | #define lpclose nodev | |
155 | #define lpwrite nodev | |
156 | #define lpioctl nodev | |
157 | #define lpreset nulldev | |
158 | #endif | |
159 | ||
3cbabb27 | 160 | int syopen(),syread(),sywrite(),syioctl(); |
72931ae2 | 161 | |
3cbabb27 | 162 | int mmread(),mmwrite(); |
72931ae2 | 163 | |
f139469d | 164 | #include "va.h" |
b06d1b78 | 165 | #if NVA > 0 |
b1f139da | 166 | int vaopen(),vaclose(),vawrite(),vaioctl(),vareset(); |
b06d1b78 BJ |
167 | #else |
168 | #define vaopen nodev | |
169 | #define vaclose nodev | |
170 | #define vawrite nodev | |
171 | #define vaopen nodev | |
172 | #define vaioctl nodev | |
173 | #define vareset nulldev | |
174 | #endif | |
175 | ||
f139469d | 176 | #include "vp.h" |
b06d1b78 BJ |
177 | #if NVP > 0 |
178 | int vpopen(),vpclose(),vpwrite(),vpioctl(),vpreset(); | |
179 | #else | |
180 | #define vpopen nodev | |
181 | #define vpclose nodev | |
182 | #define vpwrite nodev | |
183 | #define vpioctl nodev | |
184 | #define vpreset nulldev | |
185 | #endif | |
72931ae2 | 186 | |
b1f139da | 187 | int mxopen(),mxclose(),mxread(),mxwrite(),mxioctl(); |
72931ae2 BJ |
188 | int mcread(); |
189 | char *mcwrite(); | |
190 | ||
ffdeecee | 191 | #include "pty.h" |
867dd035 MT |
192 | #if WANTPTY > 0 |
193 | int ptsopen(), ptsclose(), ptsread(), ptswrite(); | |
194 | int ptcopen(), ptcclose(), ptcread(), ptcwrite(); | |
195 | int ptyioctl(); | |
196 | #else | |
197 | #define ptsopen nodev | |
198 | #define ptsclose nodev | |
199 | #define ptsread nodev | |
200 | #define ptswrite nodev | |
201 | #define ptcopen nodev | |
202 | #define ptcclose nodev | |
203 | #define ptcread nodev | |
204 | #define ptcwrite nodev | |
205 | #define ptyioctl nodev | |
206 | #endif | |
207 | ||
72931ae2 BJ |
208 | struct cdevsw cdevsw[] = |
209 | { | |
a29fa4b2 | 210 | cnopen, cnclose, cnread, cnwrite, /*0*/ |
c538db7b | 211 | cnioctl, nulldev, nulldev, &cons, |
a29fa4b2 | 212 | dzopen, dzclose, dzread, dzwrite, /*1*/ |
3cbabb27 | 213 | dzioctl, dzstop, dzreset, dz_tty, |
a29fa4b2 | 214 | syopen, nulldev, syread, sywrite, /*2*/ |
3cbabb27 | 215 | syioctl, nulldev, nulldev, 0, |
a29fa4b2 | 216 | nulldev, nulldev, mmread, mmwrite, /*3*/ |
3cbabb27 | 217 | nodev, nulldev, nulldev, 0, |
a29fa4b2 | 218 | nulldev, nulldev, hpread, hpwrite, /*4*/ |
3cbabb27 | 219 | nodev, nodev, nulldev, 0, |
a29fa4b2 | 220 | htopen, htclose, htread, htwrite, /*5*/ |
a0eab615 | 221 | htioctl, nodev, nulldev, 0, |
a29fa4b2 | 222 | vpopen, vpclose, nodev, vpwrite, /*6*/ |
3cbabb27 | 223 | vpioctl, nulldev, vpreset, 0, |
a29fa4b2 | 224 | nulldev, nulldev, swread, swwrite, /*7*/ |
3cbabb27 | 225 | nodev, nodev, nulldev, 0, |
c9e9b65b | 226 | #if VAX780 |
a29fa4b2 | 227 | flopen, flclose, flread, flwrite, /*8*/ |
3cbabb27 | 228 | nodev, nodev, nulldev, 0, |
c538db7b BJ |
229 | #else |
230 | nodev, nodev, nodev, nodev, /*8*/ | |
231 | nodev, nodev, nodev, 0, | |
232 | #endif | |
a29fa4b2 | 233 | mxopen, mxclose, mxread, mxwrite, /*9*/ |
3cbabb27 | 234 | mxioctl, nulldev, nulldev, 0, |
a29fa4b2 | 235 | vaopen, vaclose, nodev, vawrite, /*10*/ |
3cbabb27 | 236 | vaioctl, nulldev, vareset, 0, |
c538db7b | 237 | nulldev, nulldev, rkread, rkwrite, /*11*/ |
d828b073 | 238 | nodev, nodev, rkreset, 0, |
a29fa4b2 | 239 | dhopen, dhclose, dhread, dhwrite, /*12*/ |
3cbabb27 | 240 | dhioctl, dhstop, dhreset, dh11, |
a29fa4b2 | 241 | nulldev, nulldev, upread, upwrite, /*13*/ |
3cbabb27 | 242 | nodev, nodev, upreset, 0, |
9286b949 | 243 | tmopen, tmclose, tmread, tmwrite, /*14*/ |
a0eab615 | 244 | tmioctl, nodev, tmreset, 0, |
9286b949 BJ |
245 | lpopen, lpclose, nodev, lpwrite, /*15*/ |
246 | lpioctl, nodev, lpreset, 0, | |
c538db7b BJ |
247 | tsopen, tsclose, tsread, tswrite, /*16*/ |
248 | nodev, nodev, nulldev, 0, | |
5c756d94 BJ |
249 | nodev, nodev, nodev, nodev, /*17*/ |
250 | nodev, nodev, nulldev, 0, | |
cc0e2de8 | 251 | ctopen, ctclose, nodev, ctwrite, /*18*/ |
5c756d94 BJ |
252 | nodev, nodev, nulldev, 0, |
253 | nodev, nodev, nodev, nodev, /*19*/ | |
254 | nodev, nodev, nulldev, 0, | |
867dd035 MT |
255 | ptsopen, ptsclose, ptsread, ptswrite, /*20*/ |
256 | ptyioctl, nodev, nodev, 0, | |
257 | ptcopen, ptcclose, ptcread, ptcwrite, /*21*/ | |
258 | ptyioctl, nodev, nodev, 0, | |
259 | nodev, nodev, nodev, nodev, /*22*/ | |
c538db7b | 260 | nodev, nodev, nodev, 0, |
5c756d94 BJ |
261 | nodev, nodev, nodev, nodev, /*23*/ |
262 | nodev, nodev, nodev, 0, | |
263 | nodev, nodev, nodev, nodev, /*24*/ | |
264 | nodev, nodev, nodev, 0, | |
867dd035 | 265 | /* 25-29 reserved to local sites */ |
3cbabb27 | 266 | 0, |
72931ae2 BJ |
267 | }; |
268 | ||
3cbabb27 | 269 | int ttyopen(),ttread(),nullioctl(),ttstart(); |
72931ae2 | 270 | char *ttwrite(); |
3cbabb27 | 271 | int ttyinput(),ttyrend(); |
c84ff1f9 BJ |
272 | |
273 | #include "bk.h" | |
274 | #if NBK > 0 | |
3cbabb27 | 275 | int bkopen(),bkclose(),bkread(),bkinput(),bkioctl(); |
c84ff1f9 BJ |
276 | #endif |
277 | ||
3cbabb27 BJ |
278 | int ntyopen(),ntyclose(),ntread(); |
279 | char *ntwrite(); | |
280 | int ntyinput(),ntyrend(); | |
72931ae2 BJ |
281 | |
282 | struct linesw linesw[] = | |
283 | { | |
ee3c430b | 284 | ttyopen, nulldev, ttread, ttwrite, nullioctl, |
c538db7b | 285 | ttyinput, ttyrend, nulldev, nulldev, nulldev, /* 0 */ |
c84ff1f9 | 286 | #if NBK > 0 |
dfebaefd | 287 | bkopen, bkclose, bkread, ttwrite, bkioctl, |
c538db7b | 288 | bkinput, nodev, nulldev, ttstart, nulldev, /* 1 */ |
c84ff1f9 BJ |
289 | #else |
290 | nodev, nodev, nodev, nodev, nodev, | |
291 | nodev, nodev, nodev, nodev, nodev, | |
292 | #endif | |
dfebaefd | 293 | ntyopen, ntyclose, ntread, ntwrite, nullioctl, |
c538db7b | 294 | ntyinput, ntyrend, nulldev, ttstart, nulldev, /* 2 */ |
72931ae2 | 295 | mxopen, mxclose, mcread, mcwrite, mxioctl, |
5c756d94 | 296 | nulldev, nulldev, nulldev, nulldev, nulldev, /* 3 */ |
72931ae2 BJ |
297 | 0 |
298 | }; | |
299 | ||
5c756d94 | 300 | int nldisp = 4; |
72931ae2 | 301 | |
ffdeecee | 302 | struct buf bfreelist[BQUEUES]; /* buffer chain headers */ |
72931ae2 BJ |
303 | struct buf bswlist; /* free list of swap headers */ |
304 | struct buf *bclnlist; /* header for list of cleaned pages */ | |
305 | struct acct acctbuf; | |
306 | struct inode *acctp; | |
307 | ||
308 | int mem_no = 3; /* major device number of memory special file */ | |
309 | ||
8a80d250 BJ |
310 | /* |
311 | * Swapdev is a fake device implemented | |
312 | * in sw.c used only internally to get to swstrategy. | |
313 | * It cannot be provided to the users, because the | |
314 | * swstrategy routine munches the b_dev and b_blkno entries | |
315 | * before calling the appropriate driver. This would horribly | |
649b7d6e | 316 | * confuse, e.g. the hashing routines. Instead, /dev/drum is |
8a80d250 BJ |
317 | * provided as a character (raw) device. |
318 | */ | |
319 | dev_t swapdev = makedev(4, 0); | |
320 | ||
72931ae2 | 321 | extern struct user u; |