Copyright Digital Equipment Corp. All rights reserved.

Description

   The mrd_startup(3mrd) function can be used to obtain information
   about a supported Medium-Changer. Because the startup time on
   some robots (HSJ connected SCSI robots) can be relatively long,
   this routine can also be used to hold open the robot while mrd_
   show(3mrd) routines are used to collect information about the
   different robot elements.

   The mrd_shutdown(3mrd) routine should be used to close a robot
   before other MRD routines are called. With the exception of
   mrd_show(3mrd) the MRD common routines call mrd_startup(3mrd)
   themselves and can't make use of robot_info_t filled in by mrd_
   startup(3mrd).

   Robot Information
   The robot_info_t data structure is defined in the include file
   <mrd_common.h>. The fields of this data structure are described
   below:

   o  channel - This is the file descriptor, channel number or other
      operating system specific handle assigned to the process for
      the robot, when mrd_startup(3mrd) is successful. It should
      not be used directly and should only be closed through mrd_
      shutdown(3mrd). When mrd_show(3mrd) is provided a robot_info_t
      where the channel is not BAD_CHANNEL, it will assume the robot
      is open and try to use that handle.

   o  robot_name - This is set to the address of the robot_name
      argument provided to mrd_startup(3mrd).

   o  robot_type - MRD attempts to identify a robot using the SCSI
      inquiry data obtained during the startup. This is a value
      to indicate the family or type of medium-changer. Recognized
      types are:

      DLT_ROBOT          TZ857, TZ867, TZ875, TZ877, TZ885, TZ887
      RDAT_ROBOT         TLZ6L, TLZ7L, TLZ9L
      TL820_ROBOT        TL820, TL822, TL826
      TL810_ROBOT        TL810, TL812
      TL800_ROBOT        TL891
      OVERLAND_ROBOT     TKZ6x
      RW5XX_ROBOT        RW500
      UNKNOWN_ROBOT      A type not recognized

   o  arch_type - This indicates the I/O architecture used to
      communicate with the medium-changer. OpenVMS supports SCSI
      (ARCH_SCSI) and DSA (ARCH_DSA) connected medium-changers. HSJ
      and HSD connected robots are considered SCSI robots. Digital
      UNIX and Windows NT only support SCSI connected robots.

   o  vision_present - This flag indicates that the robot supports
      a vision system that can be used to read volume tags. It is
      set in the start-up and should not be changed. Most SCSI
      robots will reject commands asking for volume tags when the
      medium-changer doesn't support them.

   o  robot_device_type - This field is only used by the OpenVMS
      implementation of MRD to indicate the method the host uses
      to communicate with the medium-changer. This value is used
      internally by the OpenVMS MRD code to select the appropriate
      communcation path.

   o  ptm_addr and ptm_type The TL820 family supports a pass-through
      mechanism (PTM) for moving cartridges from the inport to
      the bar-code reader station or from there to the outport. In
      multi-tower configurations the pass-through moves cartridges
      from one tower to another. The MRD uses the PTM to perform
      bar-code verification. Early versions of the TL820 family
      firmware present the PTM as a Import/Export element, while
      later versions may present it as a Transport. These fields are
      used to indicate the address and type.

   o  maxecnt - The OpenVMS drivers used to communicate with medium-
      changers support a limited I/O size that restricts the amount
      of data that can be transferred by a Read Element Status
      command. This field is used by the OpenVMS implementation
      of MRD to know where large transfers must be broken up by the
      software.

   o  element_desc - In addition to knowing the maximum number of
      elements that may be read in a single Read Element Status
      command, the element descriptor size is also needed to
      correctly break-up command. This field stores the element
      descriptor size on all implementations of the MRD.

   The following fields are filled in from Element Address
   Assignment Page obtained via the SCSI Mode Sense command. When
   the robot is not a SCSI connect device, a suitable lie is filled
   by the operating system specific code supporting that type of
   robot.

   o  slot_count - This is the number of storage elements (slots) in
      the medium-changer. Some robots (TLZ7L) will change the number
      of slots presented depending on the type of magazine used. To
      detect changes in the size of the carrier, mrd_startup(3mrd)
      must be called and field checked for a change of value. When
      no magazine is in the drive, it may report 0 slots.

   o  slot_start - This is the element address of the first storage
      element. It is used by MRD to convert zero-relative element
      addresses to the actual element address used by the medium-
      changer.

   o  device_count - This is the number of data transfer elements
      (drives) in the medium-changer. Like storage elements it may
      be subject to change after a robot has been started.

   o  device_start - This is the element address of the first data
      transfer element. It is used by MRD to convert zero-relative
      element addresses to the actual element address used by the
      medium-changer.

   o  port_count - This is the number of import/export elements
      (ports) in the medium-changer. Like storage elements it may be
      subject to change after a robot has been started.

   o  port_start - This is the element address of the first import
      /export element. It is used by MRD to convert zero-relative
      element addresses to the actual element address used by the
      medium-changer.

   o  transport_count - This is the number of medium transport
      elements (transports) in the medium-changer. Like storage
      elements it may be subject to change after a robot has been
      started.

   o  transport_start - This is the element address of the first
      medium transport element. it is used by MRD to convert zero-
      relative element addresses to the actual element address used
      by the medium-changer.

   o  inport_count and outport_count - MRD V1.2 and earlier attempts
      to identify ports according to whether they are used for
      import-only, export-only or both. This is an artifact from
      the time that the TL820 was the only supported medium- changer
      with ports. Even though the TL810 has four ports these fields
      will report it having four inports and four outports.

   o  inport_start and outport_start - MRD V1.2 and earlier assumes
      that the arrangement of ports in the address space of the
      medium-changer has all the inports together and all the
      outports together. However, the two groups may be separated.
      No guarantee is made whether the addressees of the inports
      come before or after the outports. When the starting address
      of both types of ports the same value, it can be safely
      assumed that all the ports within the particular port count
      are both inport and outport elements.

   The following fields are obtained as the result of a SCSI Inquiry
   Command. When the robot isn't a SCSI connected device, a suitable
   lie is filled in by the operating system specific code supporting
   that type of robot.

   o  scsi_info - These are the first eight (8) bytes of the SCSI
      Inquiry data for the robot. MRD doesn't make use of this
      information, but it is available if the calling application
      wants to use it. These bytes will be zero on non-SCSI devices.

   o  inquiry - This is the VendorID, ProductID and
      ProductRevisionLevel fields of the SCSI Inquiry data. They
      are collected as a single NULL terminated string. The data is
      edited to replace any non-printable character with a space.

   These fields are not currently used:

   o  bus

   o  target

   o  lun

   o  devcap

   o  transport_geometry