|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982, 1986 Regents of the University of California. ! 3: * All rights reserved. The Berkeley software License Agreement ! 4: * specifies the terms and conditions for redistribution. ! 5: * ! 6: * @(#)confrk.c 7.1 (Berkeley) 6/5/86 ! 7: */ ! 8: ! 9: #include "../machine/pte.h" ! 10: ! 11: #include "../h/param.h" ! 12: #include "../h/inode.h" ! 13: #include "../h/fs.h" ! 14: #include "saio.h" ! 15: ! 16: devread(io) ! 17: register struct iob *io; ! 18: { ! 19: int cc; ! 20: ! 21: io->i_flgs |= F_RDDATA; ! 22: io->i_error = 0; ! 23: cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ); ! 24: io->i_flgs &= ~F_TYPEMASK; ! 25: return (cc); ! 26: } ! 27: ! 28: devwrite(io) ! 29: register struct iob *io; ! 30: { ! 31: int cc; ! 32: ! 33: io->i_flgs |= F_WRDATA; ! 34: io->i_error = 0; ! 35: cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE); ! 36: io->i_flgs &= ~F_TYPEMASK; ! 37: return (cc); ! 38: } ! 39: ! 40: devopen(io) ! 41: register struct iob *io; ! 42: { ! 43: ! 44: (*devsw[io->i_ino.i_dev].dv_open)(io); ! 45: } ! 46: ! 47: devclose(io) ! 48: register struct iob *io; ! 49: { ! 50: ! 51: (*devsw[io->i_ino.i_dev].dv_close)(io); ! 52: } ! 53: ! 54: devioctl(io, cmd, arg) ! 55: register struct iob *io; ! 56: int cmd; ! 57: caddr_t arg; ! 58: { ! 59: ! 60: return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg)); ! 61: } ! 62: ! 63: /*ARGSUSED*/ ! 64: nullsys(io) ! 65: struct iob *io; ! 66: { ! 67: ! 68: ; ! 69: } ! 70: ! 71: /*ARGSUSED*/ ! 72: nullioctl(io, cmd, arg) ! 73: struct iob *io; ! 74: int cmd; ! 75: caddr_t arg; ! 76: { ! 77: ! 78: return (ECMD); ! 79: } ! 80: ! 81: int nullsys(), nullioctl(); ! 82: int rkstrategy(), rkopen(), rkioctl(); ! 83: ! 84: struct devsw devsw[] = { ! 85: { "hk", rkstrategy, rkopen, nullsys, rkioctl }, ! 86: { 0, 0, 0, 0, 0 } ! 87: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.