xref: /original-bsd/sys/tahoe/tahoe/conf.c (revision 72002b4d)
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