1*10024Ssam /* confxx.c 4.3 82/12/30 */ 27465Skre 39803Ssam #include "../machine/pte.h" 49803Ssam 57465Skre #include "../h/param.h" 67465Skre #include "../h/inode.h" 77465Skre #include "../h/fs.h" 87465Skre #include "saio.h" 97465Skre 107465Skre devread(io) 117465Skre register struct iob *io; 127465Skre { 13*10024Ssam int error; 147465Skre 15*10024Ssam io->i_flgs |= F_RDDATA; 16*10024Ssam error = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ); 17*10024Ssam io->i_flgs &= ~F_TYPEMASK; 18*10024Ssam return (error); 197465Skre } 207465Skre 217465Skre devwrite(io) 227465Skre register struct iob *io; 237465Skre { 24*10024Ssam int error; 257465Skre 26*10024Ssam io->i_flgs |= F_WRDATA; 27*10024Ssam error = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE); 28*10024Ssam io->i_flgs &= ~F_TYPEMASK; 29*10024Ssam return (error); 307465Skre } 317465Skre 327465Skre devopen(io) 337465Skre register struct iob *io; 347465Skre { 357465Skre 367465Skre (*devsw[io->i_ino.i_dev].dv_open)(io); 377465Skre } 387465Skre 397465Skre devclose(io) 407465Skre register struct iob *io; 417465Skre { 427465Skre 437465Skre (*devsw[io->i_ino.i_dev].dv_close)(io); 447465Skre } 457465Skre 46*10024Ssam devioctl(io, cmd, arg) 47*10024Ssam register struct iob *io; 48*10024Ssam int cmd; 49*10024Ssam caddr_t arg; 507465Skre { 517465Skre 52*10024Ssam return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg)); 53*10024Ssam } 54*10024Ssam 55*10024Ssam /*ARGSUSED*/ 56*10024Ssam nullsys(io) 57*10024Ssam struct iob *io; 58*10024Ssam { 59*10024Ssam 607465Skre ; 617465Skre } 627465Skre 63*10024Ssam /*ARGSUSED*/ 64*10024Ssam nullioctl(io, cmd, arg) 65*10024Ssam struct iob *io; 66*10024Ssam int cmd; 67*10024Ssam caddr_t arg; 68*10024Ssam { 697465Skre 70*10024Ssam return (ECMD); 71*10024Ssam } 72*10024Ssam 73*10024Ssam int nullsys(), nullioctl(); 74*10024Ssam int xxstrategy(), xxopen(), xxioctl(); 75*10024Ssam 767465Skre struct devsw devsw[] = { 77*10024Ssam { "XX", xxstrategy, xxopen, nullsys, xxioctl }, 78*10024Ssam { 0, 0, 0, 0, 0 } 797465Skre }; 80