|
|
1.1 ! root 1: /* conf.c 6.1 83/07/29 */ ! 2: ! 3: #include "../machine/pte.h" ! 4: ! 5: #include "../h/param.h" ! 6: #include "../h/inode.h" ! 7: #include "../h/fs.h" ! 8: ! 9: ! 10: #include "saio.h" ! 11: ! 12: devread(io) ! 13: register struct iob *io; ! 14: { ! 15: int cc; ! 16: ! 17: io->i_flgs |= F_RDDATA; ! 18: io->i_error = 0; ! 19: cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ); ! 20: io->i_flgs &= ~F_TYPEMASK; ! 21: return (cc); ! 22: } ! 23: ! 24: devwrite(io) ! 25: register struct iob *io; ! 26: { ! 27: int cc; ! 28: ! 29: io->i_flgs |= F_WRDATA; ! 30: io->i_error = 0; ! 31: cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE); ! 32: io->i_flgs &= ~F_TYPEMASK; ! 33: return (cc); ! 34: } ! 35: ! 36: devopen(io) ! 37: register struct iob *io; ! 38: { ! 39: ! 40: (*devsw[io->i_ino.i_dev].dv_open)(io); ! 41: } ! 42: ! 43: devclose(io) ! 44: register struct iob *io; ! 45: { ! 46: ! 47: (*devsw[io->i_ino.i_dev].dv_close)(io); ! 48: } ! 49: ! 50: ! 51: /*ARGSUSED*/ ! 52: nullsys(io) ! 53: struct iob *io; ! 54: { ! 55: ! 56: ; ! 57: } ! 58: ! 59: ! 60: int nullsys(); ! 61: ! 62: ! 63: #define wchstrategy nullsys ! 64: #define wchopen nullsys ! 65: #define ctstrategy nullsys ! 66: #define ctopen nullsys ! 67: #define ctclose nullsys ! 68: ! 69: int udstrategy(), udopen(); ! 70: int vdstrategy(), vdopen(); ! 71: int cystrategy(), cyopen(), cyclose(); ! 72: ! 73: struct devsw devsw[] = { ! 74: "fsd", vdstrategy, vdopen, nullsys, ! 75: "smd", vdstrategy, vdopen, nullsys, ! 76: "xfd", vdstrategy, vdopen, nullsys, ! 77: "fuj", vdstrategy, vdopen, nullsys, ! 78: "xsd", vdstrategy, vdopen, nullsys, ! 79: ! 80: "xmd", udstrategy, udopen, nullsys, ! 81: "flp", udstrategy, udopen, nullsys, ! 82: "cyp", cystrategy, cyopen, cyclose, ! 83: "wch", wchstrategy, wchopen, nullsys, ! 84: "ctp", ctstrategy, ctopen, ctclose, ! 85: 0, 0, 0, 0 ! 86: }; ! 87:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.