Copyright (c) 1983 Regents of the University
of California. All rights reserved. The Berkeley software License Agreement
specifies the terms and conditions for redistribution. Copyright (c) 1995
Sun Microsystems, Inc. All Rights Reserved.
from UCB 4.3
/usr/sbin/rmt
rmt is a program used by the remote dump and restore programs in manipulating a magnetic tape drive through an interprocess communication connection. rmt is normally started up with an rexec(3SOCKET) or rcmd(3SOCKET) call.
The rmt program accepts requests that are specific to the manipulation of magnetic tapes, performs the commands, then responds with a status indication. All responses are in ASCII and in one of two forms. Successful commands have responses of:
Anumber\en
where number is an ASCII representation of a decimal number.
Unsuccessful commands are responded to with: Eerror-number\enerror-message\en
where error-number is one of the possible error numbers described in Intro(3), and error-message is the corresponding error string as printed from a call to perror(3C).
The protocol consists of the following commands: S\en
Return the status of the open device, as obtained with a MTIOCGET ioctl call. If the operation was successful, an "ack" is sent with the size of the status buffer, then the status buffer is sent (in binary).
Close the currently open device. The device specified is ignored.
Perform a MTIOCOP ioctl(2) command using the specified parameters. The parameters are interpreted as the ASCII representations of the decimal values to place in the mt_op and mt_count fields of the structure used in the ioctl call. When the operation is successful the return value is the count parameter.
Perform an lseek(2) operation using the specified parameters. The response value is returned from the lseek call.
Open the specified device using the indicated mode. device is a full pathname, and mode is an ASCII representation of a decimal number suitable for passing to open(9E). If a device is already open, it is closed before a new open is performed.
Read count bytes of data from the open device. rmt performs the requested read(9E) and responds with Acount-read\en if the read was successful; otherwise an error in standard format is returned. If the read was successful, the data read is sent.
Write data onto the open device. rmt reads count bytes from the connection, aborting if a premature EOF is encountered. The response value is returned from the write(9E) call.
Any other command causes rmt to exit.
ioctl (2), lseek (2), Intro (3), perror (3C), rcmd (3SOCKET), rexec (3SOCKET), mtio (4I), attributes (7), ufsdump (8), ufsrestore (8), open (9E), read (9E), write (9E)
All responses are of the form described above.
Do not use this for a remote file access protocol.