X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=rmt%2Frmt.c;h=64fc4ab023b2fce60c4352e57caa4e1a38f508f6;hb=9ce019288739ce7b6d3e3a4664303a5200b539ad;hp=590bbc4a840360dd8409236c45d3c907c0f63f37;hpb=ec387a1267f4cac7625cd5b6d1c1f080d39085b3;p=dump.git diff --git a/rmt/rmt.c b/rmt/rmt.c index 590bbc4..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 */ /* @@ -37,30 +37,30 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. - * - * $Id: rmt.c,v 1.5 1999/10/11 13:31:14 stelian Exp $ */ +#ifndef lint +static const char rcsid[] = + "$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; @@ -87,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) { @@ -116,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': @@ -138,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); @@ -150,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); @@ -163,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':