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