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