xref: /csrg-svn/sys/vax/stand/conf.c (revision 30547)
123221Smckusick /*
229293Smckusick  * Copyright (c) 1982, 1986 Regents of the University of California.
323221Smckusick  * All rights reserved.  The Berkeley software License Agreement
423221Smckusick  * specifies the terms and conditions for redistribution.
523221Smckusick  *
6*30547Skarels  *	@(#)conf.c	7.2 (Berkeley) 02/21/87
723221Smckusick  */
8318Sbill 
99803Ssam #include "../machine/pte.h"
109803Ssam 
11318Sbill #include "../h/param.h"
12318Sbill #include "../h/inode.h"
137444Sroot #include "../h/fs.h"
149186Ssam 
159186Ssam #include "../vaxmba/mbareg.h"
169186Ssam 
17318Sbill #include "saio.h"
18318Sbill 
19318Sbill devread(io)
203261Swnj 	register struct iob *io;
21318Sbill {
2211082Ssam 	int cc;
23318Sbill 
2410022Ssam 	io->i_flgs |= F_RDDATA;
2511082Ssam 	io->i_error = 0;
2611082Ssam 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ);
2710022Ssam 	io->i_flgs &= ~F_TYPEMASK;
2811082Ssam 	return (cc);
29318Sbill }
30318Sbill 
31318Sbill devwrite(io)
323261Swnj 	register struct iob *io;
33318Sbill {
3411082Ssam 	int cc;
353261Swnj 
3610022Ssam 	io->i_flgs |= F_WRDATA;
3711082Ssam 	io->i_error = 0;
3811082Ssam 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE);
3910022Ssam 	io->i_flgs &= ~F_TYPEMASK;
4011082Ssam 	return (cc);
41318Sbill }
42318Sbill 
43318Sbill devopen(io)
443261Swnj 	register struct iob *io;
45318Sbill {
463261Swnj 
47*30547Skarels 	return (*devsw[io->i_ino.i_dev].dv_open)(io);
48318Sbill }
49318Sbill 
50318Sbill devclose(io)
513261Swnj 	register struct iob *io;
52318Sbill {
533261Swnj 
54318Sbill 	(*devsw[io->i_ino.i_dev].dv_close)(io);
55318Sbill }
56318Sbill 
5710022Ssam devioctl(io, cmd, arg)
5810022Ssam 	register struct iob *io;
5910022Ssam 	int cmd;
6010022Ssam 	caddr_t arg;
613261Swnj {
62318Sbill 
6310022Ssam 	return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg));
6410022Ssam }
6510022Ssam 
6610022Ssam /*ARGSUSED*/
6710022Ssam nullsys(io)
6810022Ssam 	struct iob *io;
6910022Ssam {
7010022Ssam 
713261Swnj 	;
723261Swnj }
733261Swnj 
7410022Ssam /*ARGSUSED*/
75*30547Skarels nodev(io)
7610022Ssam 	struct iob *io;
77*30547Skarels {
78*30547Skarels 
79*30547Skarels 	errno = EBADF;
80*30547Skarels }
81*30547Skarels 
82*30547Skarels /*ARGSUSED*/
83*30547Skarels noioctl(io, cmd, arg)
84*30547Skarels 	struct iob *io;
8510022Ssam 	int cmd;
8610022Ssam 	caddr_t arg;
8710022Ssam {
8810022Ssam 
8910022Ssam 	return (ECMD);
9010022Ssam }
9110022Ssam 
9224152Sbloom #if defined(VAX780) || defined(VAX750) || defined(VAX8600)
93*30547Skarels #define	HP		"hp"
9410022Ssam int	hpstrategy(), hpopen(), hpioctl();
95*30547Skarels #else
96*30547Skarels #define	HP		""
97*30547Skarels #define	hpstrategy	nodev
98*30547Skarels #define	hpopen		nodev
99*30547Skarels #define	hpioctl		noioctl
1006970Ssam #endif
10110022Ssam int	upstrategy(), upopen(), upioctl();
10210022Ssam int	rkstrategy(), rkopen(), rkioctl();
10311111Ssam int	rastrategy(), raopen(), raioctl();
10413812Ssam #if defined(VAX730)
105*30547Skarels #define	RB		"rb"
10610022Ssam int	idcstrategy(), idcopen(), idcioctl();
107*30547Skarels #else
108*30547Skarels #define	RB		""
109*30547Skarels #define	idcstrategy	nodev
110*30547Skarels #define	idcopen		nodev
111*30547Skarels #define	idcioctl	noioctl
11213812Ssam #endif
11311111Ssam int	rlstrategy(), rlopen(), rlioctl();
114*30547Skarels 
1157277Swnj #ifndef BOOT
116*30547Skarels #define	TM		"tm"
1171812Sbill int	tmstrategy(), tmopen(), tmclose();
118*30547Skarels #define	TS		"ts"
1193261Swnj int	tsstrategy(), tsopen(), tsclose();
12024152Sbloom #if defined(VAX780) || defined(VAX750) || defined(VAX8600)
121*30547Skarels #define	HT		"ht"
1227277Swnj int	htstrategy(), htopen(), htclose();
123*30547Skarels #define	MT		"mt"
1244868Sroot int	mtstrategy(), mtopen(), mtclose();
125*30547Skarels 
126*30547Skarels #else massbus vax
127*30547Skarels #define	HT		""
128*30547Skarels #define	htstrategy	nodev
129*30547Skarels #define	htopen		nodev
130*30547Skarels #define	htclose		nodev
131*30547Skarels #define	MT		""
132*30547Skarels #define	mtstrategy	nodev
133*30547Skarels #define	mtopen		nodev
134*30547Skarels #define	mtclose		nodev
135*30547Skarels #endif massbus vax
136*30547Skarels 
137*30547Skarels #define	UT		""
1385156Ssam int	utstrategy(), utopen(), utclose();
139*30547Skarels #else BOOT
140*30547Skarels #define	TM		""
141*30547Skarels #define	tmstrategy	nodev
142*30547Skarels #define	tmopen		nodev
143*30547Skarels #define	tmclose		nodev
144*30547Skarels #define	TS		""
145*30547Skarels #define	tsstrategy	nodev
146*30547Skarels #define	tsopen		nodev
147*30547Skarels #define	tsclose		nodev
148*30547Skarels #define	HT		""
149*30547Skarels #define	htstrategy	nodev
150*30547Skarels #define	htopen		nodev
151*30547Skarels #define	htclose		nodev
152*30547Skarels #define	MT		""
153*30547Skarels #define	mtstrategy	nodev
154*30547Skarels #define	mtopen		nodev
155*30547Skarels #define	mtclose		nodev
156*30547Skarels #define	UT		""
157*30547Skarels #define	utstrategy	nodev
158*30547Skarels #define	utopen		nodev
159*30547Skarels #define	utclose		nodev
1607277Swnj #endif
161318Sbill 
162318Sbill struct devsw devsw[] = {
163*30547Skarels 	{ HP,	hpstrategy,	hpopen,	nullsys,	hpioctl }, /* 0 = hp */
164*30547Skarels 	{ HT,	htstrategy,	htopen,	htclose,	noioctl }, /* 1 = ht */
165*30547Skarels 	{ "up",	upstrategy,	upopen,	nullsys,	upioctl }, /* 2 = up */
166*30547Skarels 	{ "hk",	rkstrategy,	rkopen,	nullsys,	rkioctl }, /* 3 = hk */
167*30547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 4 = sw */
168*30547Skarels 	{ TM,	tmstrategy,	tmopen,	tmclose,	noioctl }, /* 5 = tm */
169*30547Skarels 	{ TS,	tsstrategy,	tsopen,	tsclose,	noioctl }, /* 6 = ts */
170*30547Skarels 	{ MT,	mtstrategy,	mtopen,	mtclose,	noioctl }, /* 7 = mt */
171*30547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 8 = tu */
172*30547Skarels 	{ "ra",	rastrategy,	raopen,	nullsys,	raioctl }, /* 9 = ra */
173*30547Skarels 	{ UT,	utstrategy,	utopen,	utclose,	noioctl }, /* 10 = ut */
174*30547Skarels 	{ RB,	idcstrategy,	idcopen,nullsys,	idcioctl },/* 11 = rb */
175*30547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 12 = uu */
176*30547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 13 = rx */
177*30547Skarels 	{ "rl",	rlstrategy,	rlopen,	nullsys,	rlioctl }, /* 14 = rl */
17810022Ssam 	{ 0, 0, 0, 0, 0 },
179318Sbill };
180*30547Skarels 
181*30547Skarels int	ndevs = (sizeof(devsw) / sizeof(devsw[0]) - 1);
182