diff options
author | peter <peter@FreeBSD.org> | 1995-12-30 19:02:48 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1995-12-30 19:02:48 +0000 |
commit | ab124e78b0271ddb904b761b31e5c9a0cf24e070 (patch) | |
tree | 0cf1447720c45721ed3d214a4eaaa6834bda155d /gnu/usr.bin/cpio | |
parent | 15748830d0fcd29294a1969a1012655e74908c1e (diff) | |
download | FreeBSD-src-ab124e78b0271ddb904b761b31e5c9a0cf24e070.zip FreeBSD-src-ab124e78b0271ddb904b761b31e5c9a0cf24e070.tar.gz |
recording cvs-1.6 file death
Diffstat (limited to 'gnu/usr.bin/cpio')
-rw-r--r-- | gnu/usr.bin/cpio/mt.1 | 107 | ||||
-rw-r--r-- | gnu/usr.bin/cpio/rmt.c | 281 |
2 files changed, 0 insertions, 388 deletions
diff --git a/gnu/usr.bin/cpio/mt.1 b/gnu/usr.bin/cpio/mt.1 deleted file mode 100644 index fc9cb64..0000000 --- a/gnu/usr.bin/cpio/mt.1 +++ /dev/null @@ -1,107 +0,0 @@ -.TH MT 1L \" -*- nroff -*- -.SH NAME -mt \- control magnetic tape drive operation -.SH SYNOPSIS -.B mt -[\-V] [\-f device] [\-\-file=device] [\-\-version] -operation [count] -.SH DESCRIPTION -This manual page -documents the GNU version of -.BR mt . -.B mt -performs the given -.IR operation , -which must be one of the tape operations listed below, on a tape -drive. -.PP -The default tape device to operate on is taken from the file -.I /usr/include/sys/mtio.h -when -.B mt -is compiled. It can be overridden by giving a device file name in -the environment variable -.BR TAPE -or by a command line option (see below), which also overrides the -environment variable. -.PP -The device must be either a character special file or a -remote tape drive. To use a tape drive on another machine as the -archive, use a filename that starts with `HOSTNAME:'. The -hostname can be preceded by a username and an `@' to access the remote -tape drive as that user, if you have permission to do so (typically an -entry in that user's `~/.rhosts' file). -.PP -The available operations are listed below. Unique abbreviations are -accepted. Not all operations are available on all systems, or work on -all types of tape drives. -Some operations optionally take a repeat count, which can be given -after the operation name and defaults to 1. -.IP "eof, weof" -Write -.I count -EOF marks at current position. -.IP fsf -Forward space -.I count -files. -The tape is positioned on the first block of the next file. -.IP bsf -Backward space -.I count -files. -The tape is positioned on the first block of the next file. -.IP fsr -Forward space -.I count -records. -.IP bsr -Backward space -.I count -records. -.IP bsfm -Backward space -.I count -file marks. -The tape is positioned on the beginning-of-the-tape side of -the file mark. -.IP asf -Absolute space to file number -.IR count . -Equivalent to rewind followed by fsf -.IR count . -.IP eom -Space to the end of the recorded media on the tape -(for appending files onto tapes). -.IP rewind -Rewind the tape. -.IP "offline, rewoffl" -Rewind the tape and, if applicable, unload the tape. -.IP status -Print status information about the tape unit. -.IP retension -Rewind the tape, then wind it to the end of the reel, -then rewind it again. -.IP erase -Erase the tape. -.PP -.B mt -exits with a status of 0 if the operation succeeded, 1 if the -operation or device name given was invalid, or 2 if the operation -failed. -.SS OPTIONS -.TP -.I "\-f, \-\-file=device" -Use -.I device -as the file name of the tape drive to operate on. -To use a -tape drive on another machine, use a filename that -starts with `HOSTNAME:'. The hostname can be preceded by a -username and an `@' to access the remote tape drive as that user, if -you have permission to do so (typically an entry in that user's -`~/.rhosts' file). -.TP -.I "\-V, \-\-version" -Print the version number of -.BR mt . diff --git a/gnu/usr.bin/cpio/rmt.c b/gnu/usr.bin/cpio/rmt.c deleted file mode 100644 index 442a831..0000000 --- a/gnu/usr.bin/cpio/rmt.c +++ /dev/null @@ -1,281 +0,0 @@ -/* - * Copyright (c) 1983 Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that the above copyright notice and this paragraph are - * duplicated in all such forms and that any documentation, - * advertising materials, and other materials related to such - * distribution and use acknowledge that the software was developed - * by the University of California, Berkeley. The name of the - * University may not be used to endorse or promote products derived - * from this software without specific prior written permission. - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED - * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ - -#ifndef lint -char copyright[] = -"@(#) Copyright (c) 1983 Regents of the University of California.\n\ - All rights reserved.\n"; -#endif /* not lint */ - -/* - * rmt - */ -#include <stdio.h> -#include <sgtty.h> -#include <sys/types.h> -#include <sys/socket.h> -#ifdef HAVE_SYS_GENTAPE_H /* e.g., ISC UNIX */ -#include <sys/gentape.h> -#else -#include <sys/mtio.h> -#endif -#include <errno.h> - -#if defined (_I386) && defined (_AIX) -#include <fcntl.h> -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#else -long lseek (); -#endif - -#ifdef STDC_HEADERS -#include <string.h> -#include <stdlib.h> -#else -extern char *malloc (); -#endif - -int tape = -1; - -char *record; -int maxrecsize = -1; -char *checkbuf (); -void getstring (); -void error (); - -#define SSIZE 64 -char device[SSIZE]; -char count[SSIZE], mode[SSIZE], pos[SSIZE], op[SSIZE]; - -extern errno; -extern char *sys_errlist[]; -char resp[BUFSIZ]; - -FILE *debug; -#define DEBUG(f) if (debug) fprintf(debug, f) -#define DEBUG1(f,a) if (debug) fprintf(debug, f, a) -#define DEBUG2(f,a1,a2) if (debug) fprintf(debug, f, a1, a2) - -int -main (argc, argv) - int argc; - char **argv; -{ - int rval; - char c; - int n, i, cc; - - argc--, argv++; - if (argc > 0) - { - debug = fopen (*argv, "w"); - if (debug == 0) - exit (1); - (void) setbuf (debug, (char *) 0); - } -top: - errno = 0; - rval = 0; - if (read (0, &c, 1) != 1) - exit (0); - switch (c) - { - - case 'O': - if (tape >= 0) - (void) close (tape); - getstring (device); - getstring (mode); - DEBUG2 ("rmtd: O %s %s\n", device, mode); -#if defined (i386) && defined (AIX) - /* This is alleged to fix a byte ordering problem. */ - /* I'm quite suspicious if it's right. -- mib */ - { - int oflag = atoi (mode); - int nflag = 0; - if ((oflag & 3) == 0) - nflag |= O_RDONLY; - if (oflag & 1) - nflag |= O_WRONLY; - if (oflag & 2) - nflag |= O_RDWR; - if (oflag & 0x0008) - nflag |= O_APPEND; - if (oflag & 0x0200) - nflag |= O_CREAT; - if (oflag & 0x0400) - nflag |= O_TRUNC; - if (oflag & 0x0800) - nflag |= O_EXCL; - tape = open (device, nflag, 0666); - } -#else - tape = open (device, atoi (mode), 0666); -#endif - if (tape < 0) - goto ioerror; - goto respond; - - case 'C': - DEBUG ("rmtd: C\n"); - getstring (device); /* discard */ - if (close (tape) < 0) - goto ioerror; - tape = -1; - goto respond; - - case 'L': - getstring (count); - getstring (pos); - DEBUG2 ("rmtd: L %s %s\n", count, pos); - rval = lseek (tape, (long) atoi (count), atoi (pos)); - if (rval < 0) - goto ioerror; - goto respond; - - case 'W': - getstring (count); - n = atoi (count); - DEBUG1 ("rmtd: W %s\n", count); - record = checkbuf (record, n); - for (i = 0; i < n; i += cc) - { - cc = read (0, &record[i], n - i); - if (cc <= 0) - { - DEBUG ("rmtd: premature eof\n"); - exit (2); - } - } - rval = write (tape, record, n); - if (rval < 0) - goto ioerror; - goto respond; - - case 'R': - getstring (count); - DEBUG1 ("rmtd: R %s\n", count); - n = atoi (count); - record = checkbuf (record, n); - rval = read (tape, record, n); - if (rval < 0) - goto ioerror; - (void) sprintf (resp, "A%d\n", rval); - (void) write (1, resp, strlen (resp)); - (void) write (1, record, rval); - goto top; - - case 'I': - getstring (op); - getstring (count); - DEBUG2 ("rmtd: I %s %s\n", op, count); -#ifdef MTIOCTOP - { - struct mtop mtop; - mtop.mt_op = atoi (op); - mtop.mt_count = atoi (count); - if (ioctl (tape, MTIOCTOP, (char *) &mtop) < 0) - goto ioerror; - rval = mtop.mt_count; - } -#endif - goto respond; - - case 'S': /* status */ - DEBUG ("rmtd: S\n"); - { -#ifdef MTIOCGET - struct mtget mtget; - if (ioctl (tape, MTIOCGET, (char *) &mtget) < 0) - goto ioerror; - rval = sizeof (mtget); - (void) sprintf (resp, "A%d\n", rval); - (void) write (1, resp, strlen (resp)); - (void) write (1, (char *) &mtget, sizeof (mtget)); -#endif - goto top; - } - - default: - DEBUG1 ("rmtd: garbage command %c\n", c); - exit (3); - } -respond: - DEBUG1 ("rmtd: A %d\n", rval); - (void) sprintf (resp, "A%d\n", rval); - (void) write (1, resp, strlen (resp)); - goto top; -ioerror: - error (errno); - goto top; -} - -void -getstring (bp) - char *bp; -{ - int i; - char *cp = bp; - - for (i = 0; i < SSIZE; i++) - { - if (read (0, cp + i, 1) != 1) - exit (0); - if (cp[i] == '\n') - break; - } - cp[i] = '\0'; -} - -char * -checkbuf (record, size) - char *record; - int size; -{ - if (size <= maxrecsize) - return (record); - if (record != 0) - free (record); - record = malloc (size); - if (record == 0) - { - DEBUG ("rmtd: cannot allocate buffer space\n"); - exit (4); - } - maxrecsize = size; -#ifdef SO_RCVBUF - while (size > 1024 && - setsockopt (0, SOL_SOCKET, SO_RCVBUF, (char *) &size, sizeof (size)) < 0) - size -= 1024; -#else - size = 1 + ((size - 1) % 1024); -#endif - return (record); -} - -void -error (num) - int num; -{ - - DEBUG2 ("rmtd: E %d (%s)\n", num, sys_errlist[num]); - (void) sprintf (resp, "E%d\n%s\n", num, sys_errlist[num]); - (void) write (1, resp, strlen (resp)); -} |