xref: /csrg-svn/sys/hp300/stand/conf.c (revision 41488)
1*41488Smckusick /*
2*41488Smckusick  * Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
3*41488Smckusick  * All rights reserved.
4*41488Smckusick  *
5*41488Smckusick  * %sccs.include.redist.c%
6*41488Smckusick  *
7*41488Smckusick  *	@(#)conf.c	7.1 (Berkeley) 05/08/90
8*41488Smckusick  */
9*41488Smckusick 
10*41488Smckusick #include "saio.h"
11*41488Smckusick 
12*41488Smckusick devread(io)
13*41488Smckusick 	register struct iob *io;
14*41488Smckusick {
15*41488Smckusick 	int cc;
16*41488Smckusick 
17*41488Smckusick 	/* check for interrupt */
18*41488Smckusick 	(void) peekchar();
19*41488Smckusick 
20*41488Smckusick 	io->i_flgs |= F_RDDATA;
21*41488Smckusick 	io->i_error = 0;
22*41488Smckusick 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ);
23*41488Smckusick 	io->i_flgs &= ~F_TYPEMASK;
24*41488Smckusick 	return (cc);
25*41488Smckusick }
26*41488Smckusick 
27*41488Smckusick devwrite(io)
28*41488Smckusick 	register struct iob *io;
29*41488Smckusick {
30*41488Smckusick 	int cc;
31*41488Smckusick 
32*41488Smckusick 	io->i_flgs |= F_WRDATA;
33*41488Smckusick 	io->i_error = 0;
34*41488Smckusick 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE);
35*41488Smckusick 	io->i_flgs &= ~F_TYPEMASK;
36*41488Smckusick 	return (cc);
37*41488Smckusick }
38*41488Smckusick 
39*41488Smckusick devopen(io)
40*41488Smckusick 	register struct iob *io;
41*41488Smckusick {
42*41488Smckusick 
43*41488Smckusick 	(*devsw[io->i_ino.i_dev].dv_open)(io);
44*41488Smckusick }
45*41488Smckusick 
46*41488Smckusick devclose(io)
47*41488Smckusick 	register struct iob *io;
48*41488Smckusick {
49*41488Smckusick 
50*41488Smckusick 	(*devsw[io->i_ino.i_dev].dv_close)(io);
51*41488Smckusick }
52*41488Smckusick 
53*41488Smckusick devioctl(io, cmd, arg)
54*41488Smckusick 	register struct iob *io;
55*41488Smckusick 	int cmd;
56*41488Smckusick 	caddr_t arg;
57*41488Smckusick {
58*41488Smckusick 
59*41488Smckusick 	return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg));
60*41488Smckusick }
61*41488Smckusick 
62*41488Smckusick /*ARGSUSED*/
63*41488Smckusick nullsys(io)
64*41488Smckusick 	struct iob *io;
65*41488Smckusick {
66*41488Smckusick 
67*41488Smckusick 	;
68*41488Smckusick }
69*41488Smckusick 
70*41488Smckusick /*ARGSUSED*/
71*41488Smckusick nullioctl(io, cmd, arg)
72*41488Smckusick 	struct iob *io;
73*41488Smckusick 	int cmd;
74*41488Smckusick 	caddr_t arg;
75*41488Smckusick {
76*41488Smckusick 
77*41488Smckusick 	return (ECMD);
78*41488Smckusick }
79*41488Smckusick 
80*41488Smckusick int	nullsys(), nullioctl();
81*41488Smckusick int	rdstrategy(), rdopen(), rdioctl();
82*41488Smckusick int	sdstrategy(), sdopen(), sdioctl();
83*41488Smckusick #ifndef BOOT
84*41488Smckusick int	ctstrategy(), ctopen(), ctclose();
85*41488Smckusick #endif
86*41488Smckusick 
87*41488Smckusick struct devsw devsw[] = {
88*41488Smckusick 	{ "rd",	rdstrategy,	rdopen,		nullsys,	nullioctl },
89*41488Smckusick 	{ "sd",	sdstrategy,	sdopen,		nullsys,	nullioctl },
90*41488Smckusick #ifndef BOOT
91*41488Smckusick 	{ "ct",	ctstrategy,	ctopen,		ctclose,	nullioctl },
92*41488Smckusick #endif
93*41488Smckusick 	{ 0, 0, 0, 0, 0 },
94*41488Smckusick };
95