1*11111Ssam /* confxx.c 4.4 83/02/16 */ 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*11111Ssam int cc; 147465Skre 1510024Ssam io->i_flgs |= F_RDDATA; 16*11111Ssam io->i_error = 0; 17*11111Ssam cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ); 1810024Ssam io->i_flgs &= ~F_TYPEMASK; 19*11111Ssam return (cc); 207465Skre } 217465Skre 227465Skre devwrite(io) 237465Skre register struct iob *io; 247465Skre { 25*11111Ssam int cc; 267465Skre 2710024Ssam io->i_flgs |= F_WRDATA; 28*11111Ssam io->i_error = 0; 29*11111Ssam cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE); 3010024Ssam io->i_flgs &= ~F_TYPEMASK; 31*11111Ssam return (cc); 327465Skre } 337465Skre 347465Skre devopen(io) 357465Skre register struct iob *io; 367465Skre { 377465Skre 387465Skre (*devsw[io->i_ino.i_dev].dv_open)(io); 397465Skre } 407465Skre 417465Skre devclose(io) 427465Skre register struct iob *io; 437465Skre { 447465Skre 457465Skre (*devsw[io->i_ino.i_dev].dv_close)(io); 467465Skre } 477465Skre 4810024Ssam devioctl(io, cmd, arg) 4910024Ssam register struct iob *io; 5010024Ssam int cmd; 5110024Ssam caddr_t arg; 527465Skre { 537465Skre 5410024Ssam return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg)); 5510024Ssam } 5610024Ssam 5710024Ssam /*ARGSUSED*/ 5810024Ssam nullsys(io) 5910024Ssam struct iob *io; 6010024Ssam { 6110024Ssam 627465Skre ; 637465Skre } 647465Skre 6510024Ssam /*ARGSUSED*/ 6610024Ssam nullioctl(io, cmd, arg) 6710024Ssam struct iob *io; 6810024Ssam int cmd; 6910024Ssam caddr_t arg; 7010024Ssam { 717465Skre 7210024Ssam return (ECMD); 7310024Ssam } 7410024Ssam 7510024Ssam int nullsys(), nullioctl(); 7610024Ssam int xxstrategy(), xxopen(), xxioctl(); 7710024Ssam 787465Skre struct devsw devsw[] = { 7910024Ssam { "XX", xxstrategy, xxopen, nullsys, xxioctl }, 8010024Ssam { 0, 0, 0, 0, 0 } 817465Skre }; 82