1 /*- 2 * Copyright (c) 1990 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * William Jolitz. 7 * 8 * %sccs.include.noredist.c% 9 * 10 * @(#)conf.c 7.1 (Berkeley) 04/24/90 11 */ 12 13 14 /*#include "../machine/pte.h"*/ 15 16 #include "../h/param.h" 17 #include "../h/inode.h" 18 #include "../h/fs.h" 19 20 21 #include "saio.h" 22 23 devread(io) 24 register struct iob *io; 25 { 26 int cc; 27 28 io->i_flgs |= F_RDDATA; 29 io->i_error = 0; 30 cc = (*devsw[major(io->i_ino.i_dev)].dv_strategy)(io, READ); 31 io->i_flgs &= ~F_TYPEMASK; 32 return (cc); 33 } 34 35 devwrite(io) 36 register struct iob *io; 37 { 38 int cc; 39 40 io->i_flgs |= F_WRDATA; 41 io->i_error = 0; 42 cc = (*devsw[major(io->i_ino.i_dev)].dv_strategy)(io, WRITE); 43 io->i_flgs &= ~F_TYPEMASK; 44 return (cc); 45 } 46 47 devopen(io) 48 register struct iob *io; 49 { 50 51 (*devsw[major(io->i_ino.i_dev)].dv_open)(io); 52 } 53 54 devclose(io) 55 register struct iob *io; 56 { 57 58 (*devsw[major(io->i_ino.i_dev)].dv_close)(io); 59 } 60 61 devioctl(io, cmd, arg) 62 register struct iob *io; 63 int cmd; 64 caddr_t arg; 65 { 66 67 return ((*devsw[major(io->i_ino.i_dev)].dv_ioctl)(io, cmd, arg)); 68 } 69 70 /*ARGSUSED*/ 71 nullsys(io) 72 struct iob *io; 73 { 74 75 ; 76 } 77 78 /*ARGSUSED*/ 79 nullioctl(io, cmd, arg) 80 struct iob *io; 81 int cmd; 82 caddr_t arg; 83 { 84 85 return (ECMD); 86 } 87 88 int nullsys(), nullioctl(); 89 int wdstrategy(), wdopen()/*, wdioctl()*/; 90 91 struct devsw devsw[] = { 92 /*{ "xx", xxstrategy, xxopen, nullsys, nullioctl },*/ 93 { "wd", wdstrategy, wdopen, nullsys,/*wdioctl*/ nullioctl }, 94 { 0, 0, 0, 0, 0 }, 95 }; 96 int ndevs = 2 ; 97