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