1*29566Ssam /* conf.c 1.2 86/07/16 */ 225866Ssam /* conf.c 6.1 83/07/29 */ 325866Ssam 425866Ssam #include "../machine/pte.h" 525866Ssam 625866Ssam #include "param.h" 725866Ssam #include "inode.h" 825866Ssam #include "fs.h" 925866Ssam 1025866Ssam #include "saio.h" 1125866Ssam 1225866Ssam devread(io) 1325866Ssam register struct iob *io; 1425866Ssam { 1525866Ssam int cc; 1625866Ssam 1725866Ssam io->i_flgs |= F_RDDATA; 1825866Ssam io->i_error = 0; 1925866Ssam cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ); 2025866Ssam io->i_flgs &= ~F_TYPEMASK; 2125866Ssam return (cc); 2225866Ssam } 2325866Ssam 2425866Ssam devwrite(io) 2525866Ssam register struct iob *io; 2625866Ssam { 2725866Ssam int cc; 2825866Ssam 2925866Ssam io->i_flgs |= F_WRDATA; 3025866Ssam io->i_error = 0; 3125866Ssam cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE); 3225866Ssam io->i_flgs &= ~F_TYPEMASK; 3325866Ssam return (cc); 3425866Ssam } 3525866Ssam 3625866Ssam devopen(io) 3725866Ssam register struct iob *io; 3825866Ssam { 3925866Ssam 4025866Ssam (*devsw[io->i_ino.i_dev].dv_open)(io); 4125866Ssam } 4225866Ssam 4325866Ssam devclose(io) 4425866Ssam register struct iob *io; 4525866Ssam { 4625866Ssam 4725866Ssam (*devsw[io->i_ino.i_dev].dv_close)(io); 4825866Ssam } 4925866Ssam 5025866Ssam /*ARGSUSED*/ 51*29566Ssam nullsys(io) struct iob *io; {} 52*29566Ssam nullopen(io) struct iob *io; { _stop("bad device type"); } 5325866Ssam 54*29566Ssam int udstrategy(), udopen(); 55*29566Ssam int vdstrategy(), vdopen(); 56*29566Ssam int cystrategy(), cyopen(), cyclose(); 5725866Ssam 5825866Ssam struct devsw devsw[] = { 59*29566Ssam { "ud", udstrategy, udopen, nullsys }, 60*29566Ssam { "dk", vdstrategy, vdopen, nullsys }, 61*29566Ssam #ifdef notdef 62*29566Ssam { "xp", xpstrategy, xpopen, nullsys }, 63*29566Ssam #else 64*29566Ssam { "xp", nullopen, nullsys, nullsys }, 65*29566Ssam #endif 66*29566Ssam { "cy", cystrategy, cyopen, cyclose }, 67*29566Ssam { 0 } 6825866Ssam }; 69