xref: /original-bsd/sys/hp300/hp300/conf.c (revision 51e389b0)
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.3 (Berkeley) 12/16/90
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	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(),ppiioctl();
134 #else
135 #define ppiopen		nodev
136 #define ppiclose	nodev
137 #define ppiread		nodev
138 #define ppiwrite	nodev
139 #define ppiioctl	nodev
140 #endif
141 
142 #include "ite.h"
143 #if NITE > 0
144 int	iteopen(),iteclose(),iteread(),itewrite(),iteioctl();
145 struct	tty ite_tty[];
146 #else
147 #define iteopen		nodev
148 #define iteclose	nodev
149 #define iteread		nodev
150 #define itewrite	nodev
151 #define itestop		nulldev
152 #define iteioctl	nodev
153 #define ite_tty		0
154 #endif
155 
156 #include "dca.h"
157 #if NDCA > 0
158 int	dcaopen(),dcaclose(),dcaread(),dcawrite(),dcastop(),dcaioctl();
159 struct	tty dca_tty[];
160 #else
161 #define dcaopen		nodev
162 #define dcaclose	nodev
163 #define dcaread		nodev
164 #define dcawrite	nodev
165 #define dcastop		nulldev
166 #define dcaioctl	nodev
167 #define dca_tty		0
168 #endif
169 
170 #include "dcm.h"
171 #if NDCM > 0
172 int	dcmopen(),dcmclose(),dcmread(),dcmwrite(),dcmstop(),dcmioctl();
173 struct	tty dcm_tty[];
174 #else
175 #define dcmopen		nodev
176 #define dcmclose	nodev
177 #define dcmread		nodev
178 #define dcmwrite	nodev
179 #define dcmstop		nulldev
180 #define dcmioctl	nodev
181 #define dcm_tty		0
182 #endif
183 
184 #include "clock.h"
185 #if NCLOCK > 0
186 int	clockopen(),clockclose(),clockioctl(),clockmap();
187 #else
188 #define clockopen	nodev
189 #define clockclose	nodev
190 #define clockioctl	nodev
191 #define clockmap	nodev
192 #endif
193 
194 int	logopen(),logclose(),logread(),logioctl(),logselect();
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,	nulldev,	nulldev,	NULL,
206 	cnselect,	nodev,		NULL,
207 	syopen,		nulldev,	syread,		sywrite,	/*1*/
208 	syioctl,	nulldev,	nulldev,	NULL,
209 	syselect,	nodev,		NULL,
210 	nulldev,	nulldev,	mmrw,		mmrw,		/*2*/
211 	nodev,		nulldev,	nulldev,	NULL,
212 	mmselect,	nodev,		NULL,
213 	nulldev,	nulldev,	rawread,	rawwrite,	/*3*/
214 	nodev,		nodev,		nulldev,	NULL,
215 	nodev,		nodev,		swstrategy,
216 	ptsopen,	ptsclose,	ptsread,	ptswrite,	/*4*/
217 	ptyioctl,	ptsstop,	nulldev,	pt_tty,
218 	ttselect,	nodev,		NULL,
219 	ptcopen,	ptcclose,	ptcread,	ptcwrite,	/*5*/
220 	ptyioctl,	nulldev,	nulldev,	pt_tty,
221 	ptcselect,	nodev,		NULL,
222 	logopen,	logclose,	logread,	nodev,		/*6*/
223 	logioctl,	nodev,		nulldev,	NULL,
224 	logselect,	nodev,		NULL,
225 	ctopen,		ctclose,	ctread,		ctwrite,	/*7*/
226 	ctioctl,	nodev,		nulldev,	NULL,
227 	seltrue,	nodev,		ctstrategy,
228 	sdopen,		nulldev,	sdread,		sdwrite,	/*8*/
229 	sdioctl,	nodev,		nulldev,	NULL,
230 	seltrue,	nodev,		sdstrategy,
231 	rdopen,		nulldev,	rdread,		rdwrite,	/*9*/
232 	rdioctl,	nodev,		nulldev,	NULL,
233 	seltrue,	nodev,		rdstrategy,
234 	grfopen,	grfclose,	nulldev,	nulldev,	/*10*/
235 	grfioctl,	nodev,		nulldev,	NULL,
236 	grfselect,	grfmap,		NULL,
237 	ppiopen,	ppiclose,	ppiread,	ppiwrite,	/*11*/
238 	ppiioctl,	nodev,		nulldev,	NULL,
239 	nodev,		nodev,		NULL,
240 	dcaopen,	dcaclose,	dcaread,	dcawrite,	/*12*/
241 	dcaioctl,	dcastop,	nulldev,	dca_tty,
242 	ttselect,	nodev,		NULL,
243 	iteopen,	iteclose,	iteread,	itewrite,	/*13*/
244 	iteioctl,	nodev,		nulldev,	ite_tty,
245 	ttselect,	nodev,		NULL,
246 	hilopen,	hilclose,	hilread,	nulldev,	/*14*/
247 	hilioctl,	nodev,		nulldev,	NULL,
248 	hilselect,	hilmap,		NULL,
249 	dcmopen,	dcmclose,	dcmread,	dcmwrite,	/*15*/
250 	dcmioctl,	dcmstop,	nulldev,	dcm_tty,
251 	ttselect,	nodev,		NULL,
252 	nodev,		nodev,		nodev,		nodev,		/*16*/
253 	nodev,		nodev,		nulldev,	NULL,
254 	seltrue,	nodev,		NULL,
255 	cdopen,		nulldev,	cdread,		cdwrite,	/*17*/
256 	cdioctl,	nodev,		nulldev,	NULL,
257 	seltrue,	nodev,		cdstrategy,
258 	clockopen,	clockclose,	nulldev,	nulldev,	/*18*/
259 	clockioctl,	nodev,		nulldev,	NULL,
260 	nulldev,	clockmap,	NULL,
261 	fdopen,		nulldev,	fdread,		fdwrite,	/*19*/
262 	fdioctl,	nodev,		nulldev,	NULL,
263 	seltrue,	nodev,		NULL,
264 };
265 int	nchrdev = sizeof (cdevsw) / sizeof (cdevsw[0]);
266 
267 int	mem_no = 2; 	/* major device number of memory special file */
268 
269 /*
270  * Swapdev is a fake device implemented
271  * in sw.c used only internally to get to swstrategy.
272  * It cannot be provided to the users, because the
273  * swstrategy routine munches the b_dev and b_blkno entries
274  * before calling the appropriate driver.  This would horribly
275  * confuse, e.g. the hashing routines. Instead, /dev/drum is
276  * provided as a character (raw) device.
277  */
278 dev_t	swapdev = makedev(3, 0);
279