Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

rmt(1M)

close(2)

ioctl(2)

open(2)

pmttapetab(4)

pmterrtab(4)

appropriate_privilege(5)

cap_defaults(5)

pmt(7)



pmtd(1M)                        TCP/IP R4.11                        pmtd(1M)


NAME
       pmtd - start the pseudo magnetic tape device server

SYNOPSIS
       pmtd [ -c cachesize ]

DESCRIPTION
       Only a user with the appropriate privilege can start the pmtd server
       (daemon).  For systems supporting the DG/UX Capability Option,
       appropriate privilege is defined as having one or more specific
       capabilities enabled in the effective capability set of the user.
       See cap_defaults(5) for the default capabilities for this command.

       On systems without the DG/UX Capability Option, appropriate privilege
       means that your process has an effective UID of root. See the
       appropriate_privilege(5) man page for more information.

       The pmtd server runs on the local machine and starts the execution of
       the pseudo magnetic tape device server, a server process which
       handles local requests to perform I/O operations on a tape device
       hosted by a remote machine.

       A local user opens a special file in the directory /dev/pmt.  The
       DG/UX kernel then communicates with the pmtd server to perform
       operations.  Across the network, the pmtd server starts the execution
       of, and communicates with, another server process rmt(1M), which
       performs the operations on the real tape device.

       The pmtd server consults two files (which it reads every time a
       pmt(7) special file is opened) in providing its service.
       /etc/pmttapetab contains the necessary information to access the
       remote tape device.  While performing I/O, if an error occurs at the
       remote end, pmtd will use /etc/pmterrtab in conjunction with
       /etc/pmttapetab to provide a semantically equivalent DG/UX errno
       value corresponding to the remote error.  If pmtd cannot access
       /etc/pmterrtab or the remote error does not appear in the table, pmtd
       passes the remote error back unchanged unless the value is not a
       legal DG/UX errno value.  In such cases, EIO will be passed back as a
       general catch-all.

       The pmtd server has an optional argument, cachesize, which allows the
       user to specify the size (in bytes) of the server's internal cache.
       This cache is used as a buffer to hold data whenever the
       /etc/pmttapetab cache field is set to Y or N.

       The pmtd server automatically puts itself in the background.

       The protocol used between pmt(7) and pmtd is expressed below in the
       following BNF-like specification:

              lifetime operation:

                   <ctrl_pckt[data]reply_pckt[data]>*

              The ctrl_pckt and reply_pckt packets have a fixed size of 32
              bytes.

              ctrl_pckt = <cmd<parm>*null>
              cmd = ele of { 'OP','CL','RD','WR','IO' }

              reply_pckt = <ok_reply<null>> ||
                             <err_reply<null>>>
              ok_reply = <'OK'parm>
              err_reply = <'ER'parm>

              parm = <<ele of (sigma - nl)>*nl>
              sigma = ele of { isprint()-able chars }
              data = char*
              nl = newline char
              null = null char

         ctrl_pckt's:
              cmd  parm's (nl's not shown)  <meaning>

               'OP'  device_name<open_intent>   open
               'CL'  device_handle              close
               'RD'  byte_cnt                   read
               'WR'  byte_cnt<data>             write
               'IO'  cmd<op_code>op_cnt       ioctl

         ok_reply's:
              cmd  returns  parm's (nl's not shown)

               'OP'           none
               'CL'           none
               'RD'           byte_cnt<data>
               'WR'           byte_cnt
               'IO'           <io_code>

         err_reply's:

              cmd  returns  parm's (nl's not shown)

               'OP'           <err_num>
               'CL'           none
               'RD'           <err_num>
               'WR'           <err_num>
               'IO'           <err_num>

FILES
       /etc/pmttapetab            Table with information about remote tape
                                  devices.
       /etc/pmterrtab             Table of equivalent error numbers among
                                  different operating systems.
       /usr/include/sys/errno.h   File describing DG/UX errno values.
       /usr/include/sys/mtio.h    File describing DG/UX tape operations.

SEE ALSO
       rmt(1M), close(2), ioctl(2), open(2), pmttapetab(4), pmterrtab(4),
       appropriate_privilege(5), cap_defaults(5), pmt(7).

CAVEATS
       All ioctl(2) calls with the command set to MTIOCTOP supported by the
       real tape device, are supported by the pmtd server if the
       /etc/pmttapetab entry has the cache field set to N.

       For the following, assume that the /etc/pmttapetab entry has the
       cache field set to Y.

       All BCS required operations are supported so long as the real tape
       device conforms to the BCS.  An ioctl(2) call with the command set to
       MTIOCTOP is currently supported for the operations: MTWEOF, MTFSF,
       MTBSF, MTREW, MTOFFL, and MTNOP.

       If a system call, other than open(2), fails on a pmt(7) special file,
       its state thereafter is not guaranteed until the special file is
       closed and reopened.


Licensed material--property of copyright holder(s)

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