xref: /csrg-svn/sys/vax/stand/conf.c (revision 33408)
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*33408Skarels  *	@(#)conf.c	7.4 (Berkeley) 01/28/88
723221Smckusick  */
8318Sbill 
99803Ssam #include "../machine/pte.h"
109803Ssam 
11*33408Skarels #include "param.h"
12*33408Skarels #include "inode.h"
13*33408Skarels #include "fs.h"
149186Ssam 
15318Sbill #include "saio.h"
16318Sbill 
17318Sbill devread(io)
183261Swnj 	register struct iob *io;
19318Sbill {
2011082Ssam 	int cc;
21318Sbill 
2210022Ssam 	io->i_flgs |= F_RDDATA;
2311082Ssam 	io->i_error = 0;
2411082Ssam 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ);
2510022Ssam 	io->i_flgs &= ~F_TYPEMASK;
2611082Ssam 	return (cc);
27318Sbill }
28318Sbill 
29318Sbill devwrite(io)
303261Swnj 	register struct iob *io;
31318Sbill {
3211082Ssam 	int cc;
333261Swnj 
3410022Ssam 	io->i_flgs |= F_WRDATA;
3511082Ssam 	io->i_error = 0;
3611082Ssam 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE);
3710022Ssam 	io->i_flgs &= ~F_TYPEMASK;
3811082Ssam 	return (cc);
39318Sbill }
40318Sbill 
41318Sbill devopen(io)
423261Swnj 	register struct iob *io;
43318Sbill {
443261Swnj 
4530547Skarels 	return (*devsw[io->i_ino.i_dev].dv_open)(io);
46318Sbill }
47318Sbill 
48318Sbill devclose(io)
493261Swnj 	register struct iob *io;
50318Sbill {
513261Swnj 
52318Sbill 	(*devsw[io->i_ino.i_dev].dv_close)(io);
53318Sbill }
54318Sbill 
5510022Ssam devioctl(io, cmd, arg)
5610022Ssam 	register struct iob *io;
5710022Ssam 	int cmd;
5810022Ssam 	caddr_t arg;
593261Swnj {
60318Sbill 
6110022Ssam 	return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg));
6210022Ssam }
6310022Ssam 
6410022Ssam /*ARGSUSED*/
6510022Ssam nullsys(io)
6610022Ssam 	struct iob *io;
6710022Ssam {
6810022Ssam 
693261Swnj 	;
703261Swnj }
713261Swnj 
7210022Ssam /*ARGSUSED*/
7330547Skarels nodev(io)
7410022Ssam 	struct iob *io;
7530547Skarels {
7630547Skarels 
7730547Skarels 	errno = EBADF;
7830547Skarels }
7930547Skarels 
8030547Skarels /*ARGSUSED*/
8130547Skarels noioctl(io, cmd, arg)
8230547Skarels 	struct iob *io;
8310022Ssam 	int cmd;
8410022Ssam 	caddr_t arg;
8510022Ssam {
8610022Ssam 
8710022Ssam 	return (ECMD);
8810022Ssam }
8910022Ssam 
9024152Sbloom #if defined(VAX780) || defined(VAX750) || defined(VAX8600)
9130547Skarels #define	HP		"hp"
9210022Ssam int	hpstrategy(), hpopen(), hpioctl();
9330547Skarels #else
94*33408Skarels #define	HP		0
9530547Skarels #define	hpstrategy	nodev
9630547Skarels #define	hpopen		nodev
9730547Skarels #define	hpioctl		noioctl
986970Ssam #endif
9910022Ssam int	upstrategy(), upopen(), upioctl();
10010022Ssam int	rkstrategy(), rkopen(), rkioctl();
10111111Ssam int	rastrategy(), raopen(), raioctl();
10213812Ssam #if defined(VAX730)
10330547Skarels #define	RB		"rb"
10410022Ssam int	idcstrategy(), idcopen(), idcioctl();
10530547Skarels #else
106*33408Skarels #define	RB		0
10730547Skarels #define	idcstrategy	nodev
10830547Skarels #define	idcopen		nodev
10930547Skarels #define	idcioctl	noioctl
11013812Ssam #endif
11111111Ssam int	rlstrategy(), rlopen(), rlioctl();
11230547Skarels 
1137277Swnj #ifndef BOOT
11430547Skarels #define	TM		"tm"
1151812Sbill int	tmstrategy(), tmopen(), tmclose();
11630547Skarels #define	TS		"ts"
1173261Swnj int	tsstrategy(), tsopen(), tsclose();
11824152Sbloom #if defined(VAX780) || defined(VAX750) || defined(VAX8600)
11930547Skarels #define	HT		"ht"
1207277Swnj int	htstrategy(), htopen(), htclose();
12130547Skarels #define	MT		"mt"
1224868Sroot int	mtstrategy(), mtopen(), mtclose();
12330547Skarels 
12430547Skarels #else massbus vax
125*33408Skarels #define	HT		0
12630547Skarels #define	htstrategy	nodev
12730547Skarels #define	htopen		nodev
12830547Skarels #define	htclose		nodev
129*33408Skarels #define	MT		0
13030547Skarels #define	mtstrategy	nodev
13130547Skarels #define	mtopen		nodev
13230547Skarels #define	mtclose		nodev
13330547Skarels #endif massbus vax
13430547Skarels 
13531990Skarels #define	UT		"ut"
1365156Ssam int	utstrategy(), utopen(), utclose();
137*33408Skarels #define	TMSCP		"tms"
138*33408Skarels int	tmscpstrategy(), tmscpopen(), tmscpclose();
13930547Skarels #else BOOT
140*33408Skarels #define	TM		0
14130547Skarels #define	tmstrategy	nodev
14230547Skarels #define	tmopen		nodev
14330547Skarels #define	tmclose		nodev
144*33408Skarels #define	TS		0
14530547Skarels #define	tsstrategy	nodev
14630547Skarels #define	tsopen		nodev
14730547Skarels #define	tsclose		nodev
148*33408Skarels #define	HT		0
14930547Skarels #define	htstrategy	nodev
15030547Skarels #define	htopen		nodev
15130547Skarels #define	htclose		nodev
152*33408Skarels #define	MT		0
15330547Skarels #define	mtstrategy	nodev
15430547Skarels #define	mtopen		nodev
15530547Skarels #define	mtclose		nodev
156*33408Skarels #define	UT		0
15730547Skarels #define	utstrategy	nodev
15830547Skarels #define	utopen		nodev
15930547Skarels #define	utclose		nodev
160*33408Skarels #define	TMSCP		0
161*33408Skarels #define	tmscpstrategy	nodev
162*33408Skarels #define	tmscpopen	nodev
163*33408Skarels #define	tmscpclose	nodev
164*33408Skarels #endif BOOT
165*33408Skarels 
166*33408Skarels #ifdef VAX8200
167*33408Skarels #define	KRA		"kra"
168*33408Skarels int	krastrategy(), kraopen(), kraioctl();
169*33408Skarels #else
170*33408Skarels #define	KRA		0
171*33408Skarels #define	krastrategy	nodev
172*33408Skarels #define	kraopen		nodev
173*33408Skarels #define	kraioctl	noioctl
1747277Swnj #endif
175318Sbill 
176318Sbill struct devsw devsw[] = {
177*33408Skarels 	{ HP,	hpstrategy,	hpopen,	nullsys, hpioctl }, /* 0 = hp */
178*33408Skarels 	{ HT,	htstrategy,	htopen,	htclose, noioctl }, /* 1 = ht */
179*33408Skarels 	{ "up",	upstrategy,	upopen,	nullsys, upioctl }, /* 2 = up */
180*33408Skarels 	{ "hk",	rkstrategy,	rkopen,	nullsys, rkioctl }, /* 3 = hk */
181*33408Skarels 	{ 0,	nodev,		nodev,	nullsys, noioctl }, /* 4 = sw */
182*33408Skarels 	{ TM,	tmstrategy,	tmopen,	tmclose, noioctl }, /* 5 = tm */
183*33408Skarels 	{ TS,	tsstrategy,	tsopen,	tsclose, noioctl }, /* 6 = ts */
184*33408Skarels 	{ MT,	mtstrategy,	mtopen,	mtclose, noioctl }, /* 7 = mt */
185*33408Skarels 	{ 0,	nodev,		nodev,	nullsys, noioctl }, /* 8 = tu */
186*33408Skarels 	{ "ra",	rastrategy,	raopen,	nullsys, raioctl }, /* 9 = ra */
187*33408Skarels 	{ UT,	utstrategy,	utopen,	utclose, noioctl }, /* 10 = ut */
188*33408Skarels 	{ RB,	idcstrategy,	idcopen,nullsys, idcioctl },/* 11 = rb */
189*33408Skarels 	{ 0,	nodev,		nodev,	nullsys, noioctl }, /* 12 = uu */
190*33408Skarels 	{ 0,	nodev,		nodev,	nullsys, noioctl }, /* 13 = rx */
191*33408Skarels 	{ "rl",	rlstrategy,	rlopen,	nullsys, rlioctl }, /* 14 = rl */
192*33408Skarels 	{ TMSCP,tmscpstrategy,tmscpopen,tmscpclose,noioctl},/* 15 = tmscp */
193*33408Skarels 	{ KRA,	krastrategy,	kraopen,nullsys, kraioctl}, /* 16 = kra */
194318Sbill };
19530547Skarels 
196*33408Skarels int	ndevs = (sizeof(devsw) / sizeof(devsw[0]));
197