VMS Help  —  MRD Library, Description
    The Media Robot Driver library is a callable interface for
    controlling SCSI-2 medium-changers. The interface consists of
    two include files and an object library which are installed in an
    operating system specific location. The operating system specific
    locations are shown in Library File Locations.

    Table 1-1 Library File Locations

    Windows NT         \Program Files\MRU\mrd.dll
    UNIX               /usr/lib/libmrd.a
    OpenVMS            SYS$LIBRARY:MRD$RTL.EXE

    The <mrd_common.h> include file defines data structures used to
    provide information about the medium-changer and its elements.
    The <mrd_common.h> file also defines a large number of symbolic
    constants for element type codes, offsets within SCSI structures,
    masks for SCSI bit fields, and other useful structures. The <mrd_
    common.h> file also includes prototype definitions of all the
    medium-changer functions provided in the interface.

    The <mrd_message.h> include file defines constants for each error
    code returned by the MRD interface. Function prototypes are also
    included for routines that will return a string corresponding to
    the error code.

    On Digital UNIX, these strings are retrieved from an I18N message
    catalog that is part of the installed software. Code and routines
    are also included for words and element exception messages that
    might be commonly used by a medium-changer application.

1  –  Element Addresses

    The first OpenVMS implementation of MRD supported the TF and TA
    family DLT media-changers. It used Mass Storage Control Protocol
    Display commands to indicate what cartridge should be moved.
    The MSCP uses cartridge address names instead of numbers as SCSI
    does. When SCSI support was added to the MRD, the convention
    of using strings for the address was kept and thus it has been
    since.

    In the common interface example programs, the character strings
    for the addresses are taken directly from the command line
    arguments and no special formatting is necessary. But, in
    practice, a program will probably keep SCSI addresses in
    numeric form and will have to convert those to strings. In the
    MRU command line interface and graphic user interface we use
    sprintf(3) for this:

     int element_number ;
     char element[MRD_NAME_SIZE+1] ;

     element_number = 5 ;

     sprintf(element, "%d", element_number) ;
Close Help