ARP 1.1 (Disk 85) (Mar 1988) : DriveTest / disk1.c

/*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);
}