rmt - remote magtape protocol module


     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(3) or rcmd(3) call.

     The rmt program accepts requests 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


     where  number  is  an  ASCII  representation   of   a   decimal   number.
     Unsuccessful commands are responded to with


     where error-number is one of the  possible  error  numbers  described  in
     intro(2)  and  error-message is the corresponding error string as printed
     from a call to perror(3).  The protocol is  comprised  of  the  following
     commands (a space is present between each token).

     O device mode  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(2).   If  a  device  had  already  been opened, it is
                    closed before a new open is performed.

     C device       Close the currently open device.  The device specified  is

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

     W count        Write data onto the open device.  Rmt  reads  count  bytes
                    from  the  connection, aborting if a premature end-of-file
                    is encountered.  The response value is that returned  from
                    the write(2) call.

     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.  Rmt then performs  the
                    requested read(2) 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(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.  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.

     All responses are of the form described above.

     rcmd(3), rexec(3), mtio(4), rdump(8), rrestore(8).

     People tempted to  use  this  for  a  remote  file  access  protocol  are

     Minix-vmd doesn't have the  dump(8)  and  restore(8)  programs  yet,  but
     thanks  to  rmt  you  can use a tape drive attached to a Minix-vmd system