/*M* disk1.c : disk I/O benchmark subroutines */
seqio(dno, nseg, nstart, buffer, nit)
int dno, nseg, nstart, nit;
char *buffer;
{
int i, nerror;
int t;
nerror = 0;
if (rawread(dno, 1, nstart, buffer) != 0)
++nerror;
t = time();
for (i = 0; i < nit; ++i)
{
if (rawread(dno, nseg, nstart, buffer) != 0)
++nerror;
nstart += nseg;
}
t = time() - t;
if (t < 0)
t += 24 * 60 * 60;
if (nerror)
printf(" %d errors\n", nerror);
return (t);
}
randio(dno, nseg, nstart, buffer, nit, offset)
int dno, nseg, nstart, nit, offset;
char *buffer;
{
int i, nerror;
int t;
nerror = 0;
if (rawread(dno, nseg, nstart + offset, buffer) != 0)
++nerror;
t = time();
for (i = 0; i < (nit / 2); ++i)
{
if (rawread(dno, nseg, nstart, buffer) != 0)
++nerror;
if (rawread(dno, nseg, nstart + offset, buffer) != 0)
++nerror;
nstart += nseg;
}
t = time() - t;
if (t < 0)
t += 24 * 60 * 60;
if (nerror)
printf(" %d errors\n", nerror);
return (t);
}