1*23222Smckusick /* 2*23222Smckusick * Copyright (c) 1982 Regents of the University of California. 3*23222Smckusick * All rights reserved. The Berkeley software License Agreement 4*23222Smckusick * specifies the terms and conditions for redistribution. 5*23222Smckusick * 6*23222Smckusick * @(#)confhpup.c 6.2 (Berkeley) 06/08/85 7*23222Smckusick */ 810725Ssam 910725Ssam #include "../machine/pte.h" 1010725Ssam 1110725Ssam #include "../h/param.h" 1210725Ssam #include "../h/inode.h" 1310725Ssam #include "../h/fs.h" 1410725Ssam #include "saio.h" 1510725Ssam 1610725Ssam devread(io) 1710725Ssam register struct iob *io; 1810725Ssam { 1911082Ssam int cc; 2010725Ssam 2110725Ssam io->i_flgs |= F_RDDATA; 2211082Ssam io->i_error = 0; 2311082Ssam cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, READ); 2410725Ssam io->i_flgs &= ~F_TYPEMASK; 2511082Ssam return (cc); 2610725Ssam } 2710725Ssam 2810725Ssam devwrite(io) 2910725Ssam register struct iob *io; 3010725Ssam { 3111082Ssam int cc; 3210725Ssam 3310725Ssam io->i_flgs |= F_WRDATA; 3411082Ssam io->i_error = 0; 3511082Ssam cc = (*devsw[io->i_ino.i_dev].dv_strategy)(io, WRITE); 3610725Ssam io->i_flgs &= ~F_TYPEMASK; 3711082Ssam return (cc); 3810725Ssam } 3910725Ssam 4010725Ssam devopen(io) 4110725Ssam register struct iob *io; 4210725Ssam { 4310725Ssam 4410725Ssam (*devsw[io->i_ino.i_dev].dv_open)(io); 4510725Ssam } 4610725Ssam 4710725Ssam devclose(io) 4810725Ssam register struct iob *io; 4910725Ssam { 5010725Ssam 5110725Ssam (*devsw[io->i_ino.i_dev].dv_close)(io); 5210725Ssam } 5310725Ssam 5410725Ssam devioctl(io, cmd, arg) 5510725Ssam register struct iob *io; 5610725Ssam int cmd; 5710725Ssam caddr_t arg; 5810725Ssam { 5910725Ssam 6010725Ssam return ((*devsw[io->i_ino.i_dev].dv_ioctl)(io, cmd, arg)); 6110725Ssam } 6210725Ssam 6310725Ssam /*ARGSUSED*/ 6410725Ssam nullsys(io) 6510725Ssam struct iob *io; 6610725Ssam { 6710725Ssam 6810725Ssam ; 6910725Ssam } 7010725Ssam 7110725Ssam /*ARGSUSED*/ 7210725Ssam nullioctl(io, cmd, arg) 7310725Ssam struct iob *io; 7410725Ssam int cmd; 7510725Ssam caddr_t arg; 7610725Ssam { 7710725Ssam 7810725Ssam return (ECMD); 7910725Ssam } 8010725Ssam 8110725Ssam int nullsys(), nullioctl(); 8210725Ssam int hpstrategy(), hpopen(), hpioctl(); 8310725Ssam int upstrategy(), upopen(), upioctl(); 8410725Ssam 8510725Ssam struct devsw devsw[] = { 8610725Ssam { "hp", hpstrategy, hpopen, nullsys, hpioctl }, 8710725Ssam { "up", upstrategy, upopen, nullsys, upioctl }, 8810725Ssam { 0, 0, 0, 0, 0 } 8910725Ssam }; 90