xref: /csrg-svn/sys/vax/stand/conf.c (revision 31990)
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*31990Skarels  *	@(#)conf.c	7.3 (Berkeley) 08/03/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 
4730547Skarels 	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*/
7530547Skarels nodev(io)
7610022Ssam 	struct iob *io;
7730547Skarels {
7830547Skarels 
7930547Skarels 	errno = EBADF;
8030547Skarels }
8130547Skarels 
8230547Skarels /*ARGSUSED*/
8330547Skarels noioctl(io, cmd, arg)
8430547Skarels 	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)
9330547Skarels #define	HP		"hp"
9410022Ssam int	hpstrategy(), hpopen(), hpioctl();
9530547Skarels #else
9630547Skarels #define	HP		""
9730547Skarels #define	hpstrategy	nodev
9830547Skarels #define	hpopen		nodev
9930547Skarels #define	hpioctl		noioctl
1006970Ssam #endif
10110022Ssam int	upstrategy(), upopen(), upioctl();
10210022Ssam int	rkstrategy(), rkopen(), rkioctl();
10311111Ssam int	rastrategy(), raopen(), raioctl();
10413812Ssam #if defined(VAX730)
10530547Skarels #define	RB		"rb"
10610022Ssam int	idcstrategy(), idcopen(), idcioctl();
10730547Skarels #else
10830547Skarels #define	RB		""
10930547Skarels #define	idcstrategy	nodev
11030547Skarels #define	idcopen		nodev
11130547Skarels #define	idcioctl	noioctl
11213812Ssam #endif
11311111Ssam int	rlstrategy(), rlopen(), rlioctl();
11430547Skarels 
1157277Swnj #ifndef BOOT
11630547Skarels #define	TM		"tm"
1171812Sbill int	tmstrategy(), tmopen(), tmclose();
11830547Skarels #define	TS		"ts"
1193261Swnj int	tsstrategy(), tsopen(), tsclose();
12024152Sbloom #if defined(VAX780) || defined(VAX750) || defined(VAX8600)
12130547Skarels #define	HT		"ht"
1227277Swnj int	htstrategy(), htopen(), htclose();
12330547Skarels #define	MT		"mt"
1244868Sroot int	mtstrategy(), mtopen(), mtclose();
12530547Skarels 
12630547Skarels #else massbus vax
12730547Skarels #define	HT		""
12830547Skarels #define	htstrategy	nodev
12930547Skarels #define	htopen		nodev
13030547Skarels #define	htclose		nodev
13130547Skarels #define	MT		""
13230547Skarels #define	mtstrategy	nodev
13330547Skarels #define	mtopen		nodev
13430547Skarels #define	mtclose		nodev
13530547Skarels #endif massbus vax
13630547Skarels 
137*31990Skarels #define	UT		"ut"
1385156Ssam int	utstrategy(), utopen(), utclose();
13930547Skarels #else BOOT
14030547Skarels #define	TM		""
14130547Skarels #define	tmstrategy	nodev
14230547Skarels #define	tmopen		nodev
14330547Skarels #define	tmclose		nodev
14430547Skarels #define	TS		""
14530547Skarels #define	tsstrategy	nodev
14630547Skarels #define	tsopen		nodev
14730547Skarels #define	tsclose		nodev
14830547Skarels #define	HT		""
14930547Skarels #define	htstrategy	nodev
15030547Skarels #define	htopen		nodev
15130547Skarels #define	htclose		nodev
15230547Skarels #define	MT		""
15330547Skarels #define	mtstrategy	nodev
15430547Skarels #define	mtopen		nodev
15530547Skarels #define	mtclose		nodev
15630547Skarels #define	UT		""
15730547Skarels #define	utstrategy	nodev
15830547Skarels #define	utopen		nodev
15930547Skarels #define	utclose		nodev
1607277Swnj #endif
161318Sbill 
162318Sbill struct devsw devsw[] = {
16330547Skarels 	{ HP,	hpstrategy,	hpopen,	nullsys,	hpioctl }, /* 0 = hp */
16430547Skarels 	{ HT,	htstrategy,	htopen,	htclose,	noioctl }, /* 1 = ht */
16530547Skarels 	{ "up",	upstrategy,	upopen,	nullsys,	upioctl }, /* 2 = up */
16630547Skarels 	{ "hk",	rkstrategy,	rkopen,	nullsys,	rkioctl }, /* 3 = hk */
16730547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 4 = sw */
16830547Skarels 	{ TM,	tmstrategy,	tmopen,	tmclose,	noioctl }, /* 5 = tm */
16930547Skarels 	{ TS,	tsstrategy,	tsopen,	tsclose,	noioctl }, /* 6 = ts */
17030547Skarels 	{ MT,	mtstrategy,	mtopen,	mtclose,	noioctl }, /* 7 = mt */
17130547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 8 = tu */
17230547Skarels 	{ "ra",	rastrategy,	raopen,	nullsys,	raioctl }, /* 9 = ra */
17330547Skarels 	{ UT,	utstrategy,	utopen,	utclose,	noioctl }, /* 10 = ut */
17430547Skarels 	{ RB,	idcstrategy,	idcopen,nullsys,	idcioctl },/* 11 = rb */
17530547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 12 = uu */
17630547Skarels 	{ "",	nodev,		nodev,	nullsys,	noioctl }, /* 13 = rx */
17730547Skarels 	{ "rl",	rlstrategy,	rlopen,	nullsys,	rlioctl }, /* 14 = rl */
17810022Ssam 	{ 0, 0, 0, 0, 0 },
179318Sbill };
18030547Skarels 
18130547Skarels int	ndevs = (sizeof(devsw) / sizeof(devsw[0]) - 1);
182