--- researchv9/sys/boot/stand/devio.c 2018/04/24 17:21:59 1.1 +++ researchv9/sys/boot/stand/devio.c 2018/04/24 17:31:10 1.1.1.2 @@ -7,10 +7,9 @@ * * Most simply indirect thru the table to call the "right" routine. */ - -#include "../mon/sunromvec.h" +#include +#include #include "saio.h" -#include "param.h" /* * Strategy -- handles I/O in large blocks for drivers. @@ -23,10 +22,11 @@ * Devices which do not declare a max size get the whole thing. */ static int -strategy(sip, rw) - register struct saioreq *sip; +strategy(iob, rw) + struct iob *iob; int rw; { + register struct saioreq *sip = &iob->i_si; register char *ma; register unsigned cc; register daddr_t bn; @@ -44,7 +44,7 @@ strategy(sip, rw) dp = sip->si_boottab->b_devinfo; if (dp && (maxsize = dp->d_maxiobytes) != 0 && - ((maxsize & (DEV_BSIZE-1)) == 0)) + ((maxsize & (BUFSIZE - 1)) == 0)) ; else maxsize = 0x7FFFFFFF; @@ -57,7 +57,7 @@ strategy(sip, rw) if (errs <= 0) /* error or EOF */ break; sip->si_ma += errs; - sip->si_bn += errs / DEV_BSIZE; + sip->si_bn += errs / 512; sip->si_cc = cc - (sip->si_ma - ma); } if (errs == 0) @@ -73,25 +73,26 @@ strategy(sip, rw) } int -devread(sip) - struct saioreq *sip; +devread(iob) + struct iob *iob; { - return(strategy(sip, READ)); + return(strategy(iob, READ)); } int -devwrite(sip) - struct saioreq *sip; +devwrite(iob) + struct iob *iob; { - return(strategy(sip, WRITE)); + return(strategy(iob, WRITE)); } int -devopen(sip) - register struct saioreq *sip; +devopen(iob) + struct iob *iob; { + register struct saioreq *sip = &iob->i_si; register struct devinfo *dp; register char *a; register int result; @@ -133,9 +134,10 @@ bad: return -1; /* Indicate failure */ } -devclose(sip) - register struct saioreq *sip; +devclose(iob) + struct iob *iob; { + struct saioreq *sip = &iob->i_si; sip->si_flgs &= ~F_EOF; (sip->si_boottab->b_close)(sip);