reorganization to move ufsmount ops to be vnode ops;
[unix-history] / usr / src / sys / stand.att / docopy.c
/*
* Copyright (c) 1988 Regents of the University of California.
* All rights reserved.
*
* %sccs.include.redist.c%
*
* @(#)docopy.c 7.3 (Berkeley) %G%
*/
#define SIZE 10240
docopy(from, to, nrecs)
register int from, to, nrecs;
{
register int record, rcc, wcc;
char buf[SIZE];
for (record = 0;;) {
if (!(rcc = read(from, buffer, SIZE)))
break;
if (rcc < 0) {
printf("Record %d: read error, errno=%d\n",
record, errno);
break;
}
if (rcc < SIZE)
printf("Record %d: read short; expected %d, got %d\n",
record, SIZE, rcc);
#ifdef vax
/* For bug in ht driver. */
if (rcc > SIZE)
rcc = SIZE;
#endif
if ((wcc = write(to, buffer, rcc)) < 0) {
printf("Record %d: write error: errno=%d\n",
record, errno);
break;
}
if (wcc < rcc) {
printf("Record %d: write short; expected %d, got %d\n",
record, rcc, wcc);
break;
}
if (nrecs > 0 && ++record == nrecs)
break;
}
printf("copy completed: %d records copied\n", record);
}