Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rcmd(3x)

rexec(3x)

mtio(4)

rdump(8c)

rrestore(8c)

rmt(8c)

Name

rmt − remote mass storage device protocol module

Syntax

/etc/rmt

Description

The rmt program is used by the remote dump and restore programs to manipulate remote mass storage devices and files through an interprocess communication connection. The rmt program is normally started with an rexec() or rcmd() call.

The rmt program remotely ties its standard input and output to a socket, accepts commands that manipulate remote devices or files, performs the commands, and then responds with a status indication.  All commands and responses are in ASCII and in one of two forms. Successful commands have responses of an ack such as

Anumber\n

In this example, number is an ASCII representation of a decimal number.  Unsuccessful commands are responded to with

Eerror-number\nerror-message\n,

In this example, error-number is one of the possible error numbers described in intro() and error-message is the corresponding error string as printed from a call to perror(.). The protocol is comprised of the following commands (a newline (\n) is present between each token).

O device mode Open the specified device using the indicated mode. The device is a full pathname and mode is an ASCII representation of a decimal number suitable for passing to open(.). If a device had already been opened, it is closed before a new open is performed. Device can be a regular file.

C device Close the currently open device or file.  The device specified is ignored. 

D Returns generic device information for the open device. A DEVIOCGET ioctl() call is performed and the data returned. If the operation is successful, an “ack” is sent with the size of the information buffer.

L whence offset Perform an seek() operation using the specified parameters. The response value is that returned from the lseek call.

P Returns disk partition information of the open device. A DIOCDGTPT ioctl() call is performed and the data returned. If the operation is successful, an “ack” is sent with the size of the information buffer.

T filename Returns file status information for the specified file. A stat() call is performed and the data returned. If the operation is successful, an “ack” is sent with the size of the information buffer.

W count Write data onto the open device.  The rmt program reads count bytes from the connection, aborting if a premature end-of-file is encountered.  The response value is that returned from the write() call. If the operation was successful and “ack” is sent containing the number of bytes written.

R count Read count bytes of data from the open device.  If count exceeds the size of the data buffer (10 kilobytes), it is truncated to the data buffer size.  The rmt program then performs the requested read() and responds with Acount-read\n if the read was successful.  Otherwise an error in the standard format is returned.  If the read was successful, the data read is then sent. 

I operation count Perform a MTIOCTOP ioctl() 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.  The return value is the count parameter when the operation is successful. 

S 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).

Any other command causes rmt to exit.

Restrictions

Do not use this for a remote file access protocol. 

Diagnostics

All responses are of the form described above. 

See Also

rcmd(3x), rexec(3x), mtio(4), rdump(8c), rrestore(8c)

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026