X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=rmt%2Frmt.c;h=64fc4ab023b2fce60c4352e57caa4e1a38f508f6;hb=aca7d867ae18bd62627f16ef90e58b433b881056;hp=7e79dfb2caaf2f9bd5700bf3a8bde91341472473;hpb=8d4197bb9ba5bbcef21409231ed8903b0cac353a;p=dump.git diff --git a/rmt/rmt.c b/rmt/rmt.c index 7e79dfb..64fc4ab 100644 --- a/rmt/rmt.c +++ b/rmt/rmt.c @@ -2,8 +2,8 @@ * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit * Remy Card , 1994-1997 - * Stelian Pop , 1999 - * + * Stelian Pop , 1999-2000 + * Stelian Pop - AlcĂ´ve , 2000 */ /* @@ -40,39 +40,27 @@ */ #ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1983, 1993\n\ - The Regents of the University of California. All rights reserved.\n"; -#endif /* not lint */ - -#ifndef lint -#if 0 -static char sccsid[] = "@(#)rmt.c 8.1 (Berkeley) 6/6/93"; -#endif static const char rcsid[] = - "$Id: rmt.c,v 1.4 1999/10/11 13:08:11 stelian Exp $"; -#endif /* not lint */ + "$Id: rmt.c,v 1.13 2001/03/28 12:59:49 stelian Exp $"; +#endif /* not linux */ /* * rmt */ +#include #include #include #include #include #include +#ifndef __linux__ #include +#endif #include #include #include #include -#ifdef __linux__ -#include -#include -#include -#endif - int tape = -1; char *record; @@ -99,6 +87,7 @@ main(int argc, char *argv[]) int rval = 0; char c; int n, i, cc; + unsigned long block = 0; argc--, argv++; if (argc > 0) { @@ -128,14 +117,16 @@ top: tape = open(device, atoi(filemode), 0666); if (tape < 0) goto ioerror; + block = 0; goto respond; case 'C': - DEBUG("rmtd: C\n"); + DEBUG1("rmtd: C (%lu blocks)\n", block); getstring(device); /* discard */ if (close(tape) < 0) goto ioerror; tape = -1; + block = 0; goto respond; case 'L': @@ -150,7 +141,7 @@ top: case 'W': getstring(count); n = atoi(count); - DEBUG1("rmtd: W %s\n", count); + DEBUG2("rmtd: W %s (block = %lu)\n", count, block); record = checkbuf(record, n); for (i = 0; i < n; i += cc) { cc = read(0, &record[i], n - i); @@ -162,11 +153,12 @@ top: rval = write(tape, record, n); if (rval < 0) goto ioerror; + block += n >> 10; goto respond; case 'R': getstring(count); - DEBUG1("rmtd: R %s\n", count); + DEBUG2("rmtd: R %s (block %lu)\n", count, block); n = atoi(count); record = checkbuf(record, n); rval = read(tape, record, n); @@ -175,6 +167,7 @@ top: (void)sprintf(resp, "A%d\n", rval); (void)write(1, resp, strlen(resp)); (void)write(1, record, rval); + block += n >> 10; goto top; case 'I':