Copyright Digital Equipment Corp. All rights reserved.

Description

   The mrd_move(3mrd) function is an interface to the SCSI Move
   Medium command. For the robot specified by robot_name, the
   routine will attempt to move the cartridge in the element
   specified by the source address and type to that specified by
   the destination address and type.

   Element addresses are zero based. On subsystems that support
   inverting a cartridge during a move, the cartridge_side argument
   can be used to indicate that the cartridge should be inverted.

   The robot will be opened and the arguments to the function
   verified that they are appropriate. Element addresses and types
   will be checked that they are within the valid range of elements
   on the robot. The cartridge_side argument will be verified that
   it is either the value one (1) or two (2). All pointer arguments,
   except cartridge_name, are checked to verify they are not NULL
   pointers.

   The cartridge_name argument can be used to perform cartridge
   volume tag verification before the move. If the cartridge volume
   tag at the source doesn't match that specified by this argument,
   then mrd_move(3mrd) will fail with the status MRD_STATUS_CART_
   INVALID. If the cartridge_name argument is a NULL pointer, an
   empty string or used on a robot without vision support this
   argument is silently ignored and the volume tag check will not
   be made.

   On the TL820 family of libraries, the tape will be moved to the
   pass-through read station if the source is a Port. If this move
   fails the status will be appropriate to that of a failed Move
   Medium. Likely error codes are documented in the Return Values
   section.

   After the volume tag check, the destination address is checked
   in the same way the source was. The same error codes are returned
   if the destination address is out of range. With the range checks
   completed the Move Medium command is issued. If successful MRD_
   STATUS_SUCCESS is returned. If the command failed, the SCSI error
   will be mapped to the appropriate MRD_STATUS message.

   The DLT libraries (TL820 and TL810 families) require the host
   issue a SCSI Unload command before a cartridge may be removed
   from the drive. The function mrd_move(3mrd), does not offer
   this feature. Thus, the calling program must do this itself. On
   Digital UNIX this may done with the MTOFFL opcode of the MTIOCTOP
   I/O control.