xref: /original-bsd/sys/hp300/hp300/conf.c (revision 049d63db)
1 /*
2  * Copyright (c) 1982, 1990 Regents of the University of California.
3  * All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  *
7  *	@(#)conf.c	7.5 (Berkeley) 03/19/91
8  */
9 
10 #include "sys/param.h"
11 #include "sys/systm.h"
12 #include "sys/buf.h"
13 #include "sys/ioctl.h"
14 #include "sys/tty.h"
15 #include "sys/conf.h"
16 
17 int	nullop(), enxio(), enodev(), rawread(), rawwrite(), swstrategy();
18 
19 #include "ct.h"
20 #if NCT > 0
21 int	ctopen(),ctclose(),ctstrategy(),ctread(),ctwrite(),ctdump(),ctioctl();
22 #else
23 #define	ctopen		enxio
24 #define	ctclose		enxio
25 #define	ctstrategy	enxio
26 #define	ctread		enxio
27 #define	ctwrite		enxio
28 #define	ctdump		enxio
29 #define	ctioctl		enxio
30 #endif
31 
32 #include "rd.h"
33 #if NRD > 0
34 int	rdopen(),rdstrategy(),rdread(),rdwrite(),rddump(),rdioctl(),rdsize();
35 #else
36 #define	rdopen		enxio
37 #define	rdstrategy	enxio
38 #define	rdread		enxio
39 #define	rdwrite		enxio
40 #define	rddump		enxio
41 #define	rdioctl		enxio
42 #define	rdsize		0
43 #endif
44 
45 #include "sd.h"
46 #if NSD > 0
47 int	sdopen(),sdstrategy(),sdread(),sdwrite(),sddump(),sdioctl(),sdsize();
48 #else
49 #define	sdopen		enxio
50 #define	sdstrategy	enxio
51 #define	sdread		enxio
52 #define	sdwrite		enxio
53 #define	sddump		enxio
54 #define	sdioctl		enxio
55 #define	sdsize		0
56 #endif
57 
58 #include "cd.h"
59 #if NCD > 0
60 int	cdopen(),cdstrategy(),cdread(),cdwrite(),cddump(),cdioctl(),cdsize();
61 #else
62 #define	cdopen		enxio
63 #define	cdstrategy	enxio
64 #define	cdread		enxio
65 #define	cdwrite		enxio
66 #define	cddump		enxio
67 #define	cdioctl		enxio
68 #define	cdsize		0
69 #endif
70 
71 struct bdevsw	bdevsw[] =
72 {
73 	{ ctopen,	ctclose,	ctstrategy,	ctioctl,	/*0*/
74 	  ctdump,	0,		B_TAPE },
75 	{ enxio,	enxio,		enxio,		enxio,		/*1*/
76 	  enxio,	0,		0 },
77 	{ rdopen,	nullop,		rdstrategy,	rdioctl,	/*2*/
78 	  rddump,	rdsize,		0 },
79 	{ enodev,	enodev,		swstrategy,	enodev,		/*3*/
80 	  enodev,	0,		0 },
81 	{ sdopen,	nullop,		sdstrategy,	sdioctl,	/*4*/
82 	  sddump,	sdsize,		0 },
83 	{ cdopen,	nullop,		cdstrategy,	cdioctl,	/*5*/
84 	  cddump,	cdsize,		0 },
85 	/* 6 was "fd" vnode device */
86 };
87 int	nblkdev = sizeof (bdevsw) / sizeof (bdevsw[0]);
88 
89 int	cnopen(), cnclose(), cnread(),  cnwrite(), cnioctl(), cnselect();
90 
91 int	cttyopen(), cttyread(), cttywrite(), cttyioctl(), cttyselect();
92 
93 int 	mmrw();
94 #define	mmselect	seltrue
95 
96 #include "pty.h"
97 #if NPTY > 0
98 int	ptsopen(),ptsclose(),ptsread(),ptswrite(),ptsstop();
99 int	ptcopen(),ptcclose(),ptcread(),ptcwrite(),ptcselect();
100 int	ptyioctl();
101 struct	tty pt_tty[];
102 #else
103 #define ptsopen		enxio
104 #define ptsclose	enxio
105 #define ptsread		enxio
106 #define ptswrite	enxio
107 #define ptcopen		enxio
108 #define ptcclose	enxio
109 #define ptcread		enxio
110 #define ptcwrite	enxio
111 #define ptyioctl	enxio
112 #define	pt_tty		0
113 #define	ptcselect	enxio
114 #define	ptsstop		nullop
115 #endif
116 
117 #include "ppi.h"
118 #if NPPI > 0
119 int	ppiopen(),ppiclose(),ppiread(),ppiwrite(),ppiioctl();
120 #else
121 #define ppiopen		enxio
122 #define ppiclose	enxio
123 #define ppiread		enxio
124 #define ppiwrite	enxio
125 #define ppiioctl	enxio
126 #endif
127 
128 #include "ite.h"
129 #if NITE > 0
130 int	iteopen(),iteclose(),iteread(),itewrite(),iteioctl();
131 struct	tty ite_tty[];
132 #else
133 #define iteopen		enxio
134 #define iteclose	enxio
135 #define iteread		enxio
136 #define itewrite	enxio
137 #define itestop		nullop
138 #define iteioctl	enxio
139 #define ite_tty		0
140 #endif
141 
142 #include "dca.h"
143 #if NDCA > 0
144 int	dcaopen(),dcaclose(),dcaread(),dcawrite(),dcastop(),dcaioctl();
145 struct	tty dca_tty[];
146 #else
147 #define dcaopen		enxio
148 #define dcaclose	enxio
149 #define dcaread		enxio
150 #define dcawrite	enxio
151 #define dcastop		nullop
152 #define dcaioctl	enxio
153 #define dca_tty		0
154 #endif
155 
156 #include "dcm.h"
157 #if NDCM > 0
158 int	dcmopen(),dcmclose(),dcmread(),dcmwrite(),dcmstop(),dcmioctl();
159 struct	tty dcm_tty[];
160 #else
161 #define dcmopen		enxio
162 #define dcmclose	enxio
163 #define dcmread		enxio
164 #define dcmwrite	enxio
165 #define dcmstop		nullop
166 #define dcmioctl	enxio
167 #define dcm_tty		0
168 #endif
169 
170 #include "clock.h"
171 #if NCLOCK > 0
172 int	clockopen(),clockclose(),clockioctl(),clockmap();
173 #else
174 #define clockopen	enxio
175 #define clockclose	enxio
176 #define clockioctl	enxio
177 #define clockmap	enxio
178 #endif
179 
180 #include "bpfilter.h"
181 #if NBPFILTER > 0
182 int	bpfopen(),bpfclose(),bpfread(),bpfwrite(),bpfioctl(),bpfselect();
183 #else
184 #define bpfopen		enxio
185 #define bpfclose	enxio
186 #define bpfread		enxio
187 #define bpfwrite	enxio
188 #define bpfioctl	enxio
189 #define bpfselect	enxio
190 #endif
191 
192 int	logopen(),logclose(),logread(),logioctl(),logselect();
193 
194 int	fdopen();
195 
196 int	ttselect(), seltrue();
197 
198 int	grfopen(),grfclose(),grfioctl(),grfselect(),grfmap();
199 
200 int	hilopen(),hilclose(),hilioctl(),hilmap(),hilselect(),hilread();
201 
202 struct cdevsw	cdevsw[] =
203 {
204 	{ cnopen,	cnclose,	cnread,		cnwrite,	/*0*/
205 	  cnioctl,	nullop,		nullop,		NULL,
206 	  cnselect,	enodev,		NULL },
207 	{ cttyopen,	nullop,		cttyread,	cttywrite,	/*1*/
208 	  cttyioctl,	nullop,		nullop,		NULL,
209 	  cttyselect,	enodev,		NULL },
210 	{ nullop,	nullop,		mmrw,		mmrw,		/*2*/
211 	  enodev,	nullop,		nullop,		NULL,
212 	  mmselect,	enodev,		NULL },
213 	{ nullop,	nullop,		rawread,	rawwrite,	/*3*/
214 	  enodev,	enodev,		nullop,		NULL,
215 	  enodev,	enodev,		swstrategy },
216 	{ ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
217 	  ptyioctl,	ptsstop,	nullop,		pt_tty,
218 	  ttselect,	enodev,		NULL },
219 	{ ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
220 	  ptyioctl,	nullop,		nullop,		pt_tty,
221 	  ptcselect,	enodev,		NULL },
222 	{ logopen,	logclose,	logread,	enodev,		/*6*/
223 	  logioctl,	enodev,		nullop,		NULL,
224 	  logselect,	enodev,		NULL },
225 	{ ctopen,	ctclose,	ctread,		ctwrite,	/*7*/
226 	  ctioctl,	enodev,		nullop,		NULL,
227 	  seltrue,	enodev,		ctstrategy },
228 	{ sdopen,	nullop,		sdread,		sdwrite,	/*8*/
229 	  sdioctl,	enodev,		nullop,		NULL,
230 	  seltrue,	enodev,		sdstrategy },
231 	{ rdopen,	nullop,		rdread,		rdwrite,	/*9*/
232 	  rdioctl,	enodev,		nullop,		NULL,
233 	  seltrue,	enodev,		rdstrategy },
234 	{ grfopen,	grfclose,	nullop,		nullop,		/*10*/
235 	  grfioctl,	enodev,		nullop,		NULL,
236 	  grfselect,	grfmap,		NULL },
237 	{ ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
238 	  ppiioctl,	enodev,		nullop,		NULL,
239 	  enodev,	enodev,		NULL },
240 	{ dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
241 	  dcaioctl,	dcastop,	nullop,		dca_tty,
242 	  ttselect,	enodev,		NULL },
243 	{ iteopen,	iteclose,	iteread,	itewrite,	/*13*/
244 	  iteioctl,	enodev,		nullop,		ite_tty,
245 	  ttselect,	enodev,		NULL },
246 	{ hilopen,	hilclose,	hilread,	nullop,		/*14*/
247 	  hilioctl,	enodev,		nullop,		NULL,
248 	  hilselect,	hilmap,		NULL },
249 	{ dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
250 	  dcmioctl,	dcmstop,	nullop,		dcm_tty,
251 	  ttselect,	enodev,		NULL },
252 	{ enodev,	enodev,		enodev,		enodev,		/*16*/
253 	  enodev,	enodev,		nullop,		NULL,
254 	  seltrue,	enodev,		NULL },
255 	{ cdopen,	nullop,		cdread,		cdwrite,	/*17*/
256 	  cdioctl,	enodev,		nullop,		NULL,
257 	  seltrue,	enodev,		cdstrategy },
258 	{ clockopen,	clockclose,	nullop,		nullop,		/*18*/
259 	  clockioctl,	enodev,		nullop,		NULL,
260 	  nullop,	clockmap,	NULL },
261 #ifdef notdef
262 	{ fdopen,	nullop,		fdread,		fdwrite,	/*19*/
263 	  fdioctl,	enodev,		nullop,		NULL,
264 	  seltrue,	enodev,		NULL },
265 #else
266 	{ enodev,	enodev,		enodev,		enodev,		/*19*/
267 	  enodev,	enodev,		nullop,		NULL,
268 	  seltrue,	enodev,		NULL },
269 #endif
270 	{ enodev,	enodev,		enodev,		enodev,		/*20*/
271 	  enodev,	enodev,		nullop,		NULL,
272 	  seltrue,	enodev,		NULL },
273 	{ fdopen,	enodev,		enodev,		enodev,		/*21*/
274 	  enodev,	enodev,		enodev,		NULL,
275 	  enodev,	enodev,		NULL },
276 	{ bpfopen,	bpfclose,	bpfread,	bpfwrite,	/*22*/
277 	  bpfioctl,	enodev,		enodev,		NULL,
278 	  bpfselect,	enodev,		NULL },
279 };
280 int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
281 
282 int	mem_no = 2; 	/* major device number of memory special file */
283 
284 /*
285  * Swapdev is a fake device implemented
286  * in sw.c used only internally to get to swstrategy.
287  * It cannot be provided to the users, because the
288  * swstrategy routine munches the b_dev and b_blkno entries
289  * before calling the appropriate driver.  This would horribly
290  * confuse, e.g. the hashing routines. Instead, /dev/drum is
291  * provided as a character (raw) device.
292  */
293 dev_t	swapdev = makedev(3, 0);
294