xref: /csrg-svn/sys/stand.att/dev.c (revision 33510)
1*33510Sbostic /*
2*33510Sbostic  * Copyright (c) 1982, 1986, 1988 Regents of the University of California.
3*33510Sbostic  * All rights reserved.
4*33510Sbostic  *
5*33510Sbostic  * Redistribution and use in source and binary forms are permitted
6*33510Sbostic  * provided that this notice is preserved and that due credit is given
7*33510Sbostic  * to the University of California at Berkeley. The name of the University
8*33510Sbostic  * may not be used to endorse or promote products derived from this
9*33510Sbostic  * software without specific prior written permission. This software
10*33510Sbostic  * is provided ``as is'' without express or implied warranty.
11*33510Sbostic  *
12*33510Sbostic  *	@(#)dev.c	7.1 (Berkeley) 02/20/88
13*33510Sbostic  */
14*33510Sbostic 
15*33510Sbostic #include "param.h"
16*33510Sbostic #include "inode.h"
17*33510Sbostic #include "fs.h"
18*33510Sbostic #include "saio.h"
19*33510Sbostic 
20*33510Sbostic devread(io)
21*33510Sbostic 	register struct iob *io;
22*33510Sbostic {
23*33510Sbostic 	int cc;
24*33510Sbostic 
25*33510Sbostic 	io->i_flgs |= F_RDDATA;
26*33510Sbostic 	io->i_error = 0;
27*33510Sbostic 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ);
28*33510Sbostic 	io->i_flgs &= ~F_TYPEMASK;
29*33510Sbostic 	return (cc);
30*33510Sbostic }
31*33510Sbostic 
32*33510Sbostic devwrite(io)
33*33510Sbostic 	register struct iob *io;
34*33510Sbostic {
35*33510Sbostic 	int cc;
36*33510Sbostic 
37*33510Sbostic 	io->i_flgs |= F_WRDATA;
38*33510Sbostic 	io->i_error = 0;
39*33510Sbostic 	cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE);
40*33510Sbostic 	io->i_flgs &= ~F_TYPEMASK;
41*33510Sbostic 	return (cc);
42*33510Sbostic }
43*33510Sbostic 
44*33510Sbostic devopen(io)
45*33510Sbostic 	register struct iob *io;
46*33510Sbostic {
47*33510Sbostic 	return (*devsw[io->i_ino.i_dev].dv_open)(io);
48*33510Sbostic }
49*33510Sbostic 
50*33510Sbostic devclose(io)
51*33510Sbostic 	register struct iob *io;
52*33510Sbostic {
53*33510Sbostic 	(*devsw[io->i_ino.i_dev].dv_close)(io);
54*33510Sbostic }
55*33510Sbostic 
56*33510Sbostic devioctl(io, cmd, arg)
57*33510Sbostic 	register struct iob *io;
58*33510Sbostic 	int cmd;
59*33510Sbostic 	caddr_t arg;
60*33510Sbostic {
61*33510Sbostic 	return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg));
62*33510Sbostic }
63*33510Sbostic 
64*33510Sbostic /*ARGSUSED*/
65*33510Sbostic nullsys(io)
66*33510Sbostic 	struct iob *io;
67*33510Sbostic {}
68*33510Sbostic 
69*33510Sbostic /*ARGSUSED*/
70*33510Sbostic nodev(io)
71*33510Sbostic 	struct iob *io;
72*33510Sbostic {
73*33510Sbostic 	errno = EBADF;
74*33510Sbostic }
75*33510Sbostic 
76*33510Sbostic /*ARGSUSED*/
77*33510Sbostic noioctl(io, cmd, arg)
78*33510Sbostic 	struct iob *io;
79*33510Sbostic 	int cmd;
80*33510Sbostic 	caddr_t arg;
81*33510Sbostic {
82*33510Sbostic 	return (ECMD);
83*33510Sbostic }
84