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