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