WORKING                                                                  X3T10
DRAFT                                                             Project 999D

                                                                    Revision 3
                                                                March 05, 1995







Information Technology_
SCSI_3 Medium Changer Command Set
(SMC)


This is a draft proposed American National Standard of Accredited Standards Committee X3.  As such
this is not a completed standard. The X3T10 Technical Committee may modify this document as a result
of comments received during the public review process and the approval of this document as a standard.
Use of the information contained herein is at your own risk.

Permission is granted to members of X3 and ISO, their technical committees, and their associated task
groups to reproduce this document for the purposes of X3 and ISO standardization activities without
further permission, provided this notice is included. All other rights are reserved. Any commercial or
for-profit use is strictly prohibited.





SMC Technical Editor:                   Erich Oetting
                                        Storage Technology Corporation
                                        MS 0268
                                        2270 South 88th St.
                                        Louisville, CO, 80028_0268

                                        Telephone:      (303) 673_2178
                                        Facsimile:      (303) 673_8196
                                        Email:          erich_oetting@stortek.com




Reference number
ISO/IEC **** : 199x
ANSI X3.*** - 199x
Printed March 05, 1995


POINTS OF CONTACT:

X3T10 Chair                                             X3T10 Vice_Chair
John B. Lohmeyer                                        Lawrence J. Lamers
NCR Corporation                                 Adaptec
1635 Aeroplaza Drive                                    691 South Milpitas Blvd.
Colorado Springs,  CO 80916                             Milpitas, CA 95035

Tel:    (719) 573_3362                                  Tel:    (408) 957_7817
Fax:    (719) 597_8225                                  Fax:    (408) 957_7193
Email:  john.lohmeyer@ftcollinsco.ncr.com               Email:  ljlamers@aol.com

X3 Secretariat
Lynn Barra
Administrator Standards Processing
X3 Secretariat                                          Telephone:      (202) 626_5738
1250 Eye Street, NW   Suite 200                         Facsimile:      (202) 638_4922
Washington, DC   20005

SCSI Reflector
Internet address for subscription to the SCSI reflector:        scsi-request@wichitaks.ncr.com
Internet address for distribution via SCSI reflector:           scsi@wichitaks.ncr.com

SCSI Bulletin Board
(719) 574_0424

Document Distribution
Global Engineering                                      Telephone:      (303) 792_2181 or
15 Inverness Way East                                                   (800) 854_7179
Englewood, CO   80112-5704                              Facsimile:      (303) 792_2192



ABSTRACT

This standard defines the SCSI commands and model for independent medium changer devices and
attached medium changers connected to SCSI devices.

This standard specifies functional requirements for the SCSI_3 Medium Changer Command Set (SMC).
SMC permits computers to attach to a medium changer device as an independent logical unit to manage
mount and dismount activity for removable medium SCSI logical units. This standard applies only
where the medium changer is addressed as a separate logical unit.

This standard does not contain material related to any service delivery subsystem that may be used to
transport the commands, command parameter data, command response data, and status specified in this
standard.

PATENT STATEMENT

Caution: The developers of this standard have requested that holder's of patents that may be required
for the  implementation of the standard, disclose such patents to the publisher. However neither the
developers nor the publisher have undertaken a patent search in order to identify which if any patents
may apply to this standard.

As of the date of publication of this standard and following calls for the identification of patents that
may be required for the implementation of the standard, no such claims have been made. No further
patent search is conducted by the developer of the publisher in respect to any standard it processes. No
representation is made or implied that licenses are not required to avoid infringement in use of this
standard.

Revision Information:

This document is a preliminary draft ANSI standard. It is know to be incomplete.

The following summarize the editing work undertaken for each revision of this draft standard.
Revisions are listed in reverse chronological order. This presumes that most reviewers are interested in
the recent changes in this draft standard.

REVISION 3:

~       Make table styles consistent.
~       Updated SCSI-3 document numbers.
~Moved attached medium changer from SPC.
~Integrate RESERVE (6) and RELEASE (6) commands. RESERVE (10) and RELEASE(10) still
need to be added.


 REVISION 2:

~       Changed Technical Editor.
~Updated points of contact and patent statement using SPC as a guide.
~Changed format of revision information.
~Moved description of standard from forward to introduction.
~Restored READ ELEMENT STATUS and MOVE MEDIUM commands. Only a subset of the two
commands were integrated into SPC.
~Restored mode parameters, media changer parameters were not integrated into SPC.
~Imported SCSI-2 versions of RESERVE and RELEASE command into annex with a note about the
problem with element reservations.


REVISION 1:

~       Formatting for ISO Standards.
~       Migrated text from SCSI-2 specific to generic medium changer logical units.
~       The READ ELEMENT STATUS command has been made mandatory.
~       The READ ELEMENT STATUS command is moved to the SPC standard.
~       RESERVE and RELEASE commands moved to the SPC standard or to the protocol standards.
~       The mode parameters moved to SPC to be available for removable medium devices.

REVISION 0:

~       The initial version of SMC.


Foreword

The SCSI_3 Medium Changer Command Set (SMC) standard is divided into seven clauses:

~ Clause 1 is the scope.

~ Clause 2 enumerates the normative references that apply to this standard

~ Clause 3 describes definitions, symbols and abbreviations used in this standard.

~ Clause 4 describes the overview and the conventions uses in this standard.

~ Clause 5 describes the model for this device class.

~ Clause 6 describes the commands and responses.

~ Clause 7 describes the parameters.

~Annex 1 has been removed.


Introduction

This international standard specifies a protocol for communicating between an application client and a
device server that declares itself a medium changer or supports medium changer functions.

SMC features service delivery subsystem independence.  SMC includes references to the necessary
standards and specifies requirements to allow a SCSI_3 Initiator to communicate with a medium
changer device server on a SCSI_3 service delivery subsystem.

The Medium Changer Command Set (SMC) standard specifies the commands and external behavioral
characteristics of a device server that declares itself a medium changer in the device type field of the
INQUIRY command response data. This standard also specifies the behavior of the attached medium
changer commands available when the MChngr bit is set to one in INQUIRY command response data.
The Medium Changer Command Set (SMC) standard specifies the commands and external behavioral
characteristics of a logical unit that declares itself a medium changer in the device type field of the
INQUIRY command response data. This standard applies only to Independent Changer usage, where
the medium changer is addressed as an independent logical unit. SMC is specified independent of any
service delivery subsystem used to carry commands, command parameter data, command response data
and status. The SMC standard conforms to the minimum requirements specified in the SCSI_3
Architecture Model (SAM) standard.

With any technical document there may arise questions of in interpretation as new products are
implemented. The X3 committee has established procedures to issue technical opinions concerning the
standards developed by the X3 organization. These procedures may result in SCSI Technical
Information Bulletins being published by X3.

These bulletins, while reflecting the opinion of the Technical Committee which developed the
standard, are intended solely as supplementary information to users of the standard. This standard,
ANSI X3.***-199x, as approved through the publication and voting procedures of the American
National Standards Institute, is not altered by these bulletins. Any subsequent revision to this standard
may or may not reflect the contents of these Technical Information Bulletins.

Current X3 practice is to make Technical Information Bulletins available through:

Global Engineering
15 Inverness Way East
Englewood, CO 80112_5704

Telephone:      (303) 792_2181 or
                (800) 854_7179

Facsimile:      (303) 792_2192


Contents


1 Scope    1

2 Normative references    3
2.1 Corequisite standards    3
2.2 Reference standards    3

3 Definitions, symbols and abbreviations    4
3.1 Definitions    4
3.2 Symbols and abbreviations    6

4 General    7
4.1 Overview    7
4.2 Conventions    9

5 Medium changer model   10
5.2 Attached Medium Changer.   11
5.3 Medium changer elements   11
5.4 Medium transport element   12
5.5 Storage element   13
5.6 Import export element   13
5.7 Data transfer element   13
5.8 Element status maintenance requirements   14
5.9 Volume tag information   14
5.10 Primary and alternate volume tag information   14
5.11 Volume tag information format   15

6 Commands for medium changer logical units   16
 6.1 EXCHANGE MEDIUM command   16
 6.2 INITIALIZE ELEMENT STATUS command   18
 6.3 MOVE MEDIUM command   19
6.4 POSITION TO ELEMENT command   22
6.5 READ ELEMENT STATUS command   23
 6.5.1 Element status data   24
 6.5.2 Element status page   25
6.5.3 Medium transport element descriptor   27
6.5.4 Storage element descriptor   29
6.5.5 Import export element descriptor   31
6.5.6 Data transfer element descriptor   33
6.6 RELEASE (6) command   35
6.6.1 Logical unit release (Mandatory)    35
6.6.2 Element release (Optional)   35
6.6.3 Third party release (Mandatory)   36
6.7 REQUEST VOLUME ELEMENT ADDRESS command   36
6.8 RESERVE (6) command   39
6.8.1 Logical unit reservation (Mandatory)   39
6.8.2 Element reservation (optional)   39
6.8.3 Third party reservation (Mandatory)   41
6.8.4 Superseding reservations   42
7.1 Diagnostic parameters   42
7.2 Log parameters   46
7.3 Mode parameters   46
7.3.1 Device capabilities page   47
7.3.2 Element address assignment page   48
7.3.3 Transport geometry parameters page   50





Figures


Figure 1 _ SCSI_3 document road map   52

Figure 2 _ Example independent medium changer device.



Tables


Table 1 _ Volume tag information format   15

Table 2 _ Commands for independent medium changers   16

Table 3 _ EXCHANGE MEDIUM command   17

Table 4  _ INITIALIZE ELEMENT STATUS command   19

Table 5 _ MOVE MEDIUM command   20

Table 6 _ POSITION TO ELEMENT command   22

Table 7 _ READ ELEMENT STATUS command   23

Table 8 _Element type code   24

Table 9 _ Element status data   25

Table 10 _Element status page    26

Table 11 _Medium transport element descriptor   27

Table 12 _ Storage element descriptor   29

Table 13 _ Import export element descriptor   31

Table 14 _Data transfer element descriptor   33

Table 15 _ RELEASE (6) command   35

Table 16 _ REQUEST VOLUME ELEMENT ADDRESS command   37

Table 17 _ Volume element address header format   38

Table 18 _ RESERVE (6) command   39

Table 19  _ Data format of element list descriptors   41

Table 20 _ SEND VOLUME TAG command   43

Table 21 _ Send volume tag action codes   44

Table 22 _ Send volume tag parameters format   45

Table 23 _ Diagnostic page codes   46

Table 24 _ Log  page codes   46

Table 25 _ Mode page codes   47

Table 26 _ Device capabilities page   48

Table 27 _ Element address assignment page   50

Table 28 _ Transport geometry parameters page   52



1 Scope

This international standard, SCSI_3 Medium Changer Command Set (SMC), permits an Initiator to
communicate with a logical unit that declares itself to be a medium changer in the device type field of
the INQUIRY command response data over a SCSI_3 service delivery subsystem.

Clause 2 provides a reference list of corequisite and reference standards.

Clause 3 provides a comprehensive glossary of terms used in this standard.

Clause 4 provides an overview of the medium changer device class and the command set. This clause
also specifies the conventions used throughout the standard.

Clause 5 provides a model for operations and mandatory requirements for a logical unit that declares
itself a medium changer.

Clause 6 provides the definition of all commands unique to this device class. This clause also provides
references to the SPC standard for primary commands used with this device class.

Clause 7 provides the definition of all parameters unique to this device class.

Figure 1 is intended to show the general applicability of SCSI_3 standards to one another, and not a
hierarchy, a protocol stack, or a system architecture.

For example:

~SCA and SAM and the SCSI_3 command set standards are applicable to all protocols.

~SIP, SSP, FCP, and SBP are link specific protocols designed to be applied only to the service
delivery subsystem directly below each of them.

~The SCSI_3 SCA, SAM, and command set standards provide computers with device type
independence within a class of devices.

.
.
.
Figure TBD
.
.
.

Figure 1 _ SCSI_3 document road map


The term SCSI is used whenever it is not necessary to distinguish between the versions of SCSI. The
original Small Computer System Interface Standard, X3.131_1986, is referred to in this standard as
SCSI_1. SCSI_1 was revised resulting in the Small Computer System Interface _ 2, X3.131_1994, referred
to in this standard as SCSI_2.
The term SCSI_3 refers collectively to the following documents that fall under the jurisdiction of
X3T10:

~SCSI_3 Architecture Model (SAM), X3T10/994_D
~SCSI_3 Parallel Interface (SPI), X3T10/855_D
~SCSI_3 Interlocked Protocol (SIP), X3T10/856_D
~SCSI_3 Fiber Channel Protocol (FCP), X3T10/993_D
~SCSI_3 Serial Bus Protocol (SBP), X3T10/992_D
~SCSI_3 Primary Commands (SPC), X3T10/995_D
~SCSI_3 Block Commands (SBC), X3T10/996_D
~SCSI_3 Stream Commands (SSC), X3T10/997_D
~SCSI_3 Graphic Commands (SGC), X3T10/998_D
~SCSI_3 Medium Changer Commands (SMC), X3T10/999_D

Documents that are not listed above but that are found in the chart are not under the jurisdiction of
X3T9.2.


2 Normative references

2.1 Corequisite standards

The following corequisite standards contain provisions which, through reference in SMC, are provisions
of SMC. At the time of publication, the editions indicated were valid. All standards are subject to
revision, and parties  to agreements based on this standard are encouraged to investigate the possibility
of applying the most recent editions of the following list of standards. Members of IEC and ISO
maintain registers of currently valid International Standards. ANSI performs a similar function for
American National Standards.

~ANSI X3.4-1977, American Standard Code for Information Interchange (ASCII).

~ANSI X3T10/994_D, SCSI_3 Architecture Model (SAM).

~ANSI X3T10/995-D, SCSI_3 Primary Command Sets (SPC).

2.2 Reference standards

Reference standards are listed to help implementers evaluate the complete operating environment for
SMC devices.  These standards have no provisions which place requirements on SMC, but they may be
useful.

~ANSI X3.xxx-199x, SCSI_3 Common Access Method (SCA).

~ANSI X3.xxx-199x, SCSI_3 Block Command Set (SBC).

~ANSI X3.xxx-199x, SCSI_3 Sequential Command Set (SSC).


3 Definitions, symbols and abbreviations

3.1 Definitions

This clause contains a glossary of special terms used in this standard. These terms apply to SMC and
the terms do not constitute a comprehensive glossary for SCSI_3.

~attached medium changer: A medium changer that accepts commands issued to the same logical
unit as a primary SCSI device.

~byte: An 8-bit construct.

~        byte string: A contiguous set of bytes.

~data transfer element: A component of a medium changer used to access the data stored on a
volume. The address in medium changer element space of a primary device.

~element: An addressable physical component of a medium changer device that can serve as the
location of a volume.

~field: A set of one or more contiguous bits.

~import export element: A location within a medium changer device that can be accessed by both
the medium transport elements and by the operator.

~Initiator: A logical element which normally starts I/O processes.  I/O processes execute using
the services of one or more ports in the Initiator.

~invalid: An illegal, reserved, or unsupported bit, field, code value, or protocol sequence.

~independent medium changer: A medium changer addressed as a separate SCSI device or
logical unit.

~medium transport element: A component of a medium changer device that is used to move
volumes.

~nexus: A relationship between an Initiator and a Target which begins with an initial connect
and ends with the completion of activity associated with a task.

~one: A single bit field with a value of 1b, or a field value numerically equal to 1b.

~port: A port is a portion of the service delivery interface of a SCSI_3 device. A SCSI_3 device
may have more than one port.  Each port may attach to the same or a different physical
interface.

~primary device: A device for reading or writing data on medium. These devices would typically
the direct access, sequential access, optical memory device or CD-ROM command sets in this
International Standard. Examples are magnetic disk drives, cartridge tape drives, optical disk
drives and CD-ROM drives. Use in a medium changer environment implies that the device
supports removable volumes.

~reserved: The term used for fields, code values, and other items set aside for future
standardization.

~storage element: A component of a medium changer device used for inactive storage of a volume.

~Target: A logical element which normally receives and transmits Information Packets on behalf
of one or more logical units.

~Task: a task consists of one initial connection and zero or more reconnects with a minimum of one
Information Packet transfer per connection. The connect(s) pertain to a nexus in which at least
one Information Packet is successfully transferred.

~vendor-specific: Something (e.g., a bit, field, code value, etc.) this standard identifies, but its
use is not defined by this standard and may be used differently in various implementations.

~volume rotation: The process of changing the orientation of a volume. In particular this refers to
inverting a two sided volume cartridge so that a data transport element that can access only one
side at a time can access data on the other side.

~zero: A field with a value of 0b in each bit position.



3.2 Symbols and abbreviations

~ACA  Auto-contingent allegiance

~AEN  Asynchronous event notification

~CDB  command descriptor block

~e.g   for example (illustrative)

~i.e. that is (additional explanation)

~I/O  input/output

~ID   identifier

~LSB  least significant bit

~LUN  logical unit number

~MSB  most significant bit

~SAM  SCSI_3 Architecture Model

~SCSI_3   Only standards identified in the foreword as being part of the SCSI_3 standard
document set

~SMC  SCSI_3 Medium Changer Command Set standard

~SPC  SCSI_3 Primary Command Set standard

~||   Concatenation. Merging two items to form one new item.




4 General

4.1 Overview

The SCSI_3 medium changer device class specifies a logical unit that is involved, primarily, with the
movement of removable volumes in a controlled environment without human intervention. The SCSI_3
device classes that provide for removable volumes are block and sequential. (See the SBC and SSC
standards.)

A medium changer logical unit receives orders to move volumes between various element types in the
element address space of the medium changer. The element types are storage, data transfer, medium
transport, and import export. A robotics subsystem, addressed through a medium transport element
address, moves volumes within a medium changer.

A medium changer logical unit maintains an inventory of volumes and at what element address they
can be found.  The medium changer logical unit reports this inventory when requested as well as
identifying the element addresses assigned to different types of elements.

Different levels of sophistication may be implemented in how this inventory is managed, reported,
detected and maintained.  The elements in a medium changer may be reserved to different Initiators.
For example, one data transport element may be reserved for exclusive use by one Initiator. The primary
device, located at that data transfer element, may then be attached to various systems for their use.
The primary device associated with a data transfer element may not be a SCSI_3 device.

The split between mount and dismount control of the volumes and read and write control by a primary
device is a key feature of this device class. The mechanism for coordinating this kind of sophisticated
activity is not specified in this standard. The medium changer device class provides the means for
mount/dismount management only.

Figure 2 shows an example of a medium changer. The primary devices are shown as examples of the
different classes to indicate that there are multiple primary device classes available in SCSI_3. Also,
the ports on each primary device may or may not attach to the same service delivery subsystem and the
interfaces to the primary devices may not  be SCSI_3. The rectangular shape of the medium changer is
by no means indicative of an implementation, but rather it is a drawing convention. The number and
arrangement of elements is arbitrary also.


                                                        <--------------Primary Device--------------->

         Port          Port        Port        Port        Port
           |             |           |           |           |
     +=====+=====+   +===+===+   +===+===+   +===+===+   +===+===+
     |           |   | Tape  |   | Disk  |   |Optical|   |Write  |
     | Medium    |   | Device|   | Device|   |Device |   |Once   |
     | Changer   |   |       |   |       |   |       |   |Device |
     | Logical   |   +=======+   +=======+   +=======+   +=======+
     | Unit      +---+=======+===+=======+===+=======+===+=======+
     |           |   <------------Data Transfer Elements-------->|
     +========+==+                                               |
     |Import  |       +===+   A                                  |
     |Export  |       |   |===| Medium Transport Element         |
     |Element |       +===+   V                                  |
     +========+                                                  |
     |                                                           |
     |                                                           |
     +===========================================================+
     |   |   |   |   |   |   |   |   |   |   |   |   |   |   |   |
     +===========================================================+
     <------------------------Storage Elements------------------->

Figure 2 _ Example independent medium changer device.

The independent changer model This standard describes the Independent Changer model for a medium
changer, and applies to implementations where the medium changer is addressed by a separate logical
unit. There is no requirement that the logical unit for the medium changer be on a separate port. It is
sufficient for the medium changer to be isolated as a unique logical unit. This type of medium changer
can support more than one primary device.

The attached medium changer model SCSI_3 permits a limited subset of the function indicated by this
medium changer model to be incorporated directly into a primary device when there is only one data
transport element. This is the Attached Changer model and is described in the SPC. In this special
case, only one logical unit is used to access all functions and that access is through the logical unit of a
primary device.




4.2 Conventions

Certain words and terms used in this standard have specific meanings beyond the normal English
meaning. A glossary defines these words and terms or the definition appears at first use in the text.

Words have the normal technical English definition unless the word or phrase is defined in context or
in the glossary, then that definition is used.

Numbered items in SMC do not represent any priority. Any priority is explicitly indicated.

In all of the text, tables, and figures of this standard, the most significant bit of a binary quantity is
shown on the left side and represents the highest algebraic value position in the quantity.

The word "shall" is used to indicate a mandatory requirement. If such a requirement is not followed, the
results are unpredictable unless indicated otherwise. In addition, if such a requirement is not
followed, the implementation is not in conformance with this standard. If a field is specified as not
meaningful or it is to be ignored, the entity that receives the field shall not check that field.

If a conflict arises between text, tables, and figures, the order of precedence to resolve conflicts is text,
tables, and, lastly, figures. Not all tables and figures are fully described in text. Tables show data
formats and values; figures are illustrative of the text and tables. NOTEs and IMPLEMENTATION
NOTEs have been kept to a minimum, but when they occur they do not constitute any requirements for
implementors.

Numbers which are not immediately followed by lower-case `b' or `h' are decimal values.

The ISO convention of numbering is used (i.e., the thousands and higher multiples are separated by a
space and a comma is used as the decimal point as in 65 536 or 0,5).

A sequence of one or more of the digits 0 and 1 immediately followed by lower-case `b' are binary values.
A sequence of one or more of the digits 0_9 and the upper-case letters `A'_`F' immediately followed by
lower-case `h' are hexadecimal values.


5 Medium changer model

Medium changer devices logical units mechanize the movement of media to and from primary devices
(e.g., disk or tape drives) and other locations within the domain of the medium changer. The medium
changer command set is based on a physical model of this functionality.

In Attached Changer usage, the medium changer is addressed as a separate logical unit from the
primary device.  The full command set is available in Attached Changer usage.

In Independent Changer usage,  medium changer commands are sent to the same logical unit as the
primary device. Only the READ ELEMENT STATUS and MOVE MEDIUM commands are available.

This command set supports various physical implementations of the medium changer function. Most of
these variations are hidden from an Initiator by the high level functions provided by the MOVE
MEDIUM command, the optional EXCHANGE MEDIUM command, and by the generalized nature of
the element addressing. However, an Initiator may need to be aware of the characteristics and
capabilities of a particular medium changer logical unit. These characteristics and capabilities are
available as parameters.

The medium changer moves volumes among the several element types accessible to it on command from
an Initiator. The medium changer logical unit shall be capable of reporting the full or empty status of
any element address in its domain.

In order to access data on the medium of a volume currently located in a storage element, an Initiator
issues commands to both the medium changer and the primary device. The commands to the medium
changer may include the MOVE MEDIUM or the optional EXCHANGE MEDIUM plus the READ
ELEMENT STATUS command. The commands to the primary device may include TEST UNIT
READY,INQUIRY, START STOP and LOAD UNLOAD commands in addition to READ and WRITE
commands.

5.1 Independent Medium Changer.

An independent medium changer is a device server that returns 8h in the Peripheral device type field
(see SPC) of INQUIRY command response data.

Independent medium changers for the SMC standard respond to a LUN different from those used by a
primary device. There is no requirement that communication with a primary device use the same
service delivery subsystem as the medium changer device, or by a different SCSI_3 service delivery
subsystem, or that a primary device be a SCSI_3 device. Multiple primary devices may be attached to
an Independent changer.

If a primary device served by the medium changer is a SCSI device, the primary device may be
addressed on a SCSI_3 service delivery subsystem though the same port as the medium changer but
with a different LUN or the primary device may be addressed through independent ports and any LUN
on the same or a different service delivery subsystem.

The READ ELEMENT STATUS command response data page for each data transfer element may
provide the identity of the primary device serviced by a medium changer device. This support is
optional since a primary device is not required to be a SCSI_3 device.

5.2 Attached Medium Changer.

Attached medium changers respond to the same LUN as the primary device. Two medium changer
commands are incorporated into the command set of the primary device.

The device server shall indicate its ability to support medium changer commands by setting the
MChngr bit to one in its standard INQUIRY data (see SPC).  An Mchngr bit of one shall indicate that
the READ ELEMENT STATUS and MOVE MEDIUM commands are supported in addition to the
commands supported by the primary device.

This standard does not support addressing both the medium changer and the data transfer elements
through the same LUN on the same service delivery subsystem. The Attached Changer model is
described in the SPC standard.

NOTE_ The SCSI_3 SPC standard permits the READ ELEMENT STATUS command and the MOVE 
MEDIUM
command to be incorporated into a primary device. The primary device reports its primary device class (e.g., 
write
once) plus an indication in the INQUIRY command response data that limited medium changer function has 
been
incorporated.

5.3 Medium changer elements

A medium changer has an address space separate and distinct from the physical address space of a
SCSI_3 service delivery subsystem. The term element is used throughout this clause to refer to one
member of the medium changer address space.  A volume is the recording media and its carrier that is
removable from a primary device and may be moved from one element to another by a medium changer.
Within a medium changer, the element addresses are a set of physical locations and mechanisms
within the scope of a medium changer device.

Each element is a discrete physical entity that may provide storage for zero or one volume. A volume is
in exactly one element at a time. The point in time during movement when a volume is considered in a
different element is implementation dependent. When requested to report element status, a volume
shall be reported as being at exactly one element address. The element address shall not be arbitrarily
changed by the medium changer. However, in multiple initiator environments may cause volumes to be
moved without notifying the Initiators.

An element address does not refer to multiple volumes. That is, when requested to report element status,
an element address shall report either zero or one volume present.

An element address is associated with a volume. If the volume is partitioned internally (e.g., tape), an
element address is not assigned to a partition.

A medium changer is viewed as a set of addressable elements, each of which may provide storage for a
volume or be used to move a volume. Each medium changer element has a unique element address. Each
element is an instance of one of four element types.

~Medium Transport Element
~Storage Element
~Import Export Element
~Data Transfer Element

A volume is referred to only indirectly by this model. Volumes can be moved to or from any of the
elements of the medium changer device. This movement is accomplished using element addresses.

The presence of a volume at any element in a medium changer can be sensed. In order to ensure exclusive
access to a volume, the element where the volume is located (the element address) must be assigned to
an Initiator.

NOTE_ When a volume is moved from an assigned element to an unassigned element exclusive use is no 
longer
guaranteed. Both element addresses must be assigned to the Initiator.

EDITOR'S NOTE_ Is assignment to a volume or to an element address? When a volume is moved from an 
element
address, the assignment of the volume once in that element appears not to be carried forward to the new 
element where
the volume resides. Should assignment be to the volume at an element address and then be transferrable to the 
new
element as the volume moves and the old location becomes unassigned?

Medium transport, import export, and data transport element types may not provide independent
storage for medium. The capabilities of a particular medium changer can be determined from mode
parameters in the device capabilities page.

NOTE_ The following hypothetical medium changer implementation illustrates one case of an element not 
providing
independent storage for a volume. Consider a medium changer which has a carousel style storage for a volume. 
The
import export function could be provided by a port which allows operator access to one of the storage elements. 
In
such a medium changer a MOVE MEDIUM command to move a volume from a storage element to the import 
export
element would rotate the carousel to align the addressed storage element to the import export position. In this 
case, the
import export element does not provide independent storage but rather access to one of the storage elements.

Each element type shall be assigned to contiguous number range. The number ranges assigned to element
types shall not overlap. The number ranges are not required to form one contiguous number range over all
element types. Element address zero is reserved for use as the default medium transport element
address.

5.4 Medium transport element

A medium transport element contains the functions of the medium changer device that move a volume
from one element address to another. When a medium transport element can serve (even temporarily) as
a storage location for a volume, each location where a volume may be held shall have a separate
medium transport element address. Support for a medium transport element address being the source
and/or destination address in a MOVE MEDIUM and EXCHANGE MEDIUM command is optional.  The
maximum number of medium transport elements is 127.

In larger medium changer devices, the medium movement functions may be performed by multiple
independent robotics subsystems.  Each of these subsystems may have a number of medium transport
element addresses. Sets of medium transport elements for the same common robotics system shall have
their medium transport element addresses assigned contiguously.

Any of the medium transport element addresses within a medium changer may be used in the medium
transport element address field of any MOVE MEDIUM or EXCHANGE MEDIUM command. An
Initiator may determine the capabilities of the medium transport elements of a medium changer in the
transport geometry mode parameters.

Element address zero is reserved for use in the medium transport element address field of MOVE
MEDIUM and EXCHANGE MEDIUM commands to direct the medium changer to use a default, or any
medium changer selected, medium transport element. Support for element address zero is mandatory.

Attached medium changer devices shall only have one medium transport element. In an attached
changer, element address zero is reserved for the transport element.


5.5 Storage element

Storage elements are locations of volumes while a volume is not in some other element type. A volume in
a storage element is available for access by medium transport elements. Support for at least one storage
element is mandatory.

A storage element may be source or destination address in a MOVE MEDIUM command or the optional
EXCHANGE MEDIUM command.

5.6 Import export element

Import export elements are locations of volumes which are being inserted into or withdrawn from the
medium changer. A volume in one of these elements is accessible by at least one medium transport
element in the medium changer, by the operator, or by another independent medium changer device
(i.e., cascaded medium changer devices). Support for an import export element is optional.

Any import export element may be capable of import actions only, export actions only, or both when
present in a medium changer logical unit.

An Import export element address may be a source or destination address in a MOVE MEDIUM command
or the optional EXCHANGE MEDIUM command. Import export elements may or may not provide
independent storage of a volume.  See the device capabilities mode parameters. See clause 7 for an
example.

5.7 Data transfer element

A data transfer element represents the interface between the medium changer and a primary device
(e.g., a removable media optical disk drive or tape drive). A data transfer element is considered part of
the medium changer and is not part of a primary device.

NOTE_ Theoretically, it should be possible to place a primary device of a compatible device class in proximity 
to a
medium changer, specify the interface as a data transfer element to the medium changer, and begin operation 
without
any change to the primary device. Closer coordination between the medium changer and a primary device may 
be
required in some implementations. Such coordination is vendor-specific.

Primary devices are capable of reading or writing the medium in a volume. Data transfer elements may
also be viewed as medium changer element addresses of volumes loaded in or available for loading in or
removal from primary devices (e.g., disk or tape drives). Any data transfer element shall be accessible
to at least one medium transport element.

A data transfer element address may be a source or destination address in a MOVE MEDIUM command
or the optional EXCHANGE MEDIUM command. Data transfer elements may or may not provide
independent storage of a unit of media, see the device capabilities mode parameters.
Attached medium changers shall have only one data transfer element.

5.8 Element status maintenance requirements

When a medium changer receives a valid READ ELEMENT STATUS command, the medium changer
shall be capable of reporting as command response data various data required by each page type (i.e.,
full, error, etc.). The medium changer may maintain this information at all times or it may regenerate
it after receiving a valid READ ELEMENT STATUS command. The optional INITIALIZE ELEMENT
STATUS command may be used to force regeneration of this information.

5.9 Volume tag information

The READ ELEMENT STATUS command response data  descriptor format for all element types includes
fields that contain volume tag information. These optional fields are used to report volume
identification information that the medium changer has acquired either by reading an external label
(e.g. bar code labels), by a SEND VOLUME TAG command, or by other means which may be vendor-
specific. The same volume tag information shall be available to all Initiators whether the volume tag
information was assigned by that Initiator, by some other Initiator, or by the media changer.

The volume tag information field values shall be independent of any volume identification information
recorded on the medium or a volume.

The medium changer command set definition does not impose any requirement that volume tag
information be unique over the volumes within the domain of the medium changer. If volume tag
information is implemented, the medium changer shall retain the association between volume tag
information and a volume as the volume is moved from element address to element address.

Volume tag information provides a means to confirm the identity of a volume that is stored at a medium
changer element address. When volume tag information is implemented, this standard does not specify
any direct addressing of volumes based on the values in these fields. Optional commands are defined
that provide translation between volume tag information and the element addresses of zero or more
volumes with matching volume tags information.

The following commands support the optional volume tag functionality:

~SEND VOLUME TAG _ used either as a translation request or to associate a volume tag with
the volume currently residing at an element address.  This is an optional command for
independent medium changers.

~REQUEST VOLUME ELEMENT ADDRESS _ returns the element address currently associated
with the volume tag information transferred with the last SEND VOLUME TAG command.
This is an optional command for independent medium changers.

~READ ELEMENT STATUS _ optionally reports volume tag information for all element types.
Volume tag information is an optional function of a medium changer.

5.10 Primary and alternate volume tag information

Element status descriptors, as optionally reported by the READ ELEMENT STATUS command, permit
defining a primary volume tag and an alternate volume tag. Alternate volume tag information provides
a means for a system to use different volume identification information for each partition of a volume.
Primary volume tag information refers to the logical medium accessible via a MOVE MEDIUM
command with the invert field set to 0b. Alternate volume tag information refers to the other side of
the media (i.e., the side that would be accessed via a MOVE MEDIUM command with the invert field
set to 1b). Some volumes may be recorded on both sides. The invert field setting permits an Initiator to
select the side to use when a volume is mounted.

All volumes have a primary volume tag information attribute.

5.11 Volume tag information format

Volume tag information consists of a volume identification field plus a volume sequence number field.

Table 1 defines the fields within the primary and alternate volume tag information fields that may be
present in READ ELEMENT STATUS descriptors and in the data format for the SEND VOLUME TAG
command.

Table 1 _ Volume tag information format

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                                                                       |
|- - -+---               Volume identification field                       ---|
| 31  |                                                                       |
|-----+-----------------------------------------------------------------------|
| 32  |                                                                       |
|- - -+---                           Reserved                              ---|
| 33  |                                                                       |
|-----+-----------------------------------------------------------------------|
| 34  | (MSB)                                                                 |
|-----+---                     Volume sequence number                      ---|
| 35  |                                                                 (LSB) |
+=============================================================================
+

The volume identification field shall consist of a left justified sequence of ASCII characters. Unused
positions shall be blank (20h) filled.  In order for the SEND VOLUME TAG translate with template to
work the characters `*' and `?' (2Ah and 3Fh) shall not appear in volume identification field and there
shall be no blanks (20h) in the significant part (Ed. define!) of the volume identification field. If
volume tag information for a particular element is undefined, the volume identification field shall be
zero filled. The volume sequence number is a 2 byte integer field. If the volume sequence number is not
used this field shall be zero.

NOTE_ For compatibility with the volume label defined by ANSI volume label and file structure standards (Ed. 
add
cross reference in clause 2), it is recommended that the characters in the significant non-blank portion of the 
volume
identification field be restricted to the set: `0'`9', `A'`Z'' and `_' (30h39h, 41h5Ah, 5Fh).


6 Commands for medium changer logical units

The commands for independent medium changers shall be as shown in table 2.

Table 2 _ Commands for independent medium changers

+=====================================-============-======-============+
|  Command name                       | Operation  | Type |  Subclause |
|                                     |   code     |      |            |
|-------------------------------------+------------+------+------------|
| CHANGE DEFINITION                   |    40h     |   O  |    SPC     |
| EXCHANGE MEDIUM                     |    A6h     |   O  |    6.1     |
| INITIALIZE ELEMENT STATUS           |    07h     |   O  |    6.2     |
| INQUIRY                             |    12h     |   M  |    SPC     |
| LOG SELECT                          |    4Ch     |   O  |    SPC     |
| LOG SENSE                           |    4Dh     |   O  |    SPC     |
| MODE SELECT(6)                      |    15h     |   O  |    SPC     |
| MODE SELECT(10)                     |    55h     |   O  |    SPC     |
| MODE SENSE(6)                       |    1Ah     |   O  |    SPC     |
| MODE SENSE(10)                      |    5Ah     |   O  |    SPC     |
| MOVE MEDIUM                         |    A5h     |   M  |    6.3     |
| POSITION TO ELEMENT                 |    2Bh     |   O  |    6.4     |
| PREVENT ALLOW MEDIUM REMOVAL        |    1Eh     |   O  |    SPC     |
| READ BUFFER                         |    3Ch     |   O  |    SPC     |
| READ ELEMENT STATUS                 |    B8h     |   M  |    6.5     |
| RECEIVE DIAGNOSTIC RESULTS          |    1Ch     |   O  |    SPC     |
| RELEASE                             |    17h     |   O  |    SPC     |
| REQUEST VOLUME ELEMENT ADDRESS      |    B5h     |   O  |    6.6     |
| REQUEST SENSE                       |    03h     |   M  |    SPC     |
| RESERVE                             |    16h     |   O  |    SPC     |
| REZERO UNIT                         |    01h     |   O  |    SPC     |
| SEND DIAGNOSTIC                     |    1Dh     |   M  |    SPC     |
| SEND VOLUME TAG                     |    B6h     |   O  |    6.7     |
| TEST UNIT READY                     |    00h     |   M  |    SPC     |
| WRITE BUFFER                        |    3Bh     |   O  |    SPC     |
|----------------------------------------------------------------------|
|Key:  M   = command implementation is mandatory.                      |
|      O   = command implementation is optional.                       |
|      SPC = SCSI_3 Primary Command Set standard                       |
+======================================================================+

Operation codes 0Ch, and C0h through FFh are vendor-specific.  All other operation codes are
reserved.

Attached medium changers shall support the READ ELEMENT STATUS and MOVE MEDIUM
commands in addition to the commands defined by the primary device type.  Attached medium
changers shall not support other medium changer commands (i.e. EXCHANGE MEDIUM).


6.1 EXCHANGE MEDIUM command

The EXCHANGE MEDIUM command (see table 3) provides a means to exchange the volume in the
source element address, with the volume located at a destination element address. Support of this
command requires that the logical unit have the capability of handling two volumes at the same time
or that it emulate this capability.

Support for this command is optional for an independent medium changer.  This command has no
command parameter data. No command response data is returned.

Table 3 _ EXCHANGE MEDIUM command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                         Operation code (A6h)                          |
|-----+-----------------------------------------------------------------------|
| 1   |                               Reserved                                |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                 Medium transport element address                ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                          Source address                         ---|
| 5   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 6   | (MSB)                                                                 |
|-----+---                      First destination address                  ---|
| 7   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 8   | (MSB)                                                                 |
|-----+---                      Second destination address                 ---|
| 9   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 10  |                     Reserved                      |   Inv2  |   Inv1  |
|-----+-----------------------------------------------------------------------|
| 11  |                                 Control                               |
+=============================================================================
+


The volume in the source element address is moved to the first destination element address and the
volume that previously occupied the first destination element address is moved to the second
destination element address. The second destination element address may or may not be the same
element as the source element address. In the case of a simple exchange, the source element address and
the second destination element address are the same. The device capabilities page of the MODE
SENSE command provides a matrix which defines the supported source element type and first
destination element type combinations for EXCHANGE MEDIUM commands when the source element
type is the same as second destination element type.

If this command is received and the source element address is empty or the first destination element
address is empty, or the second destination element address (if different from the source element) is
full, or the second destination element address (if the same as the source element) is empty, the logical
unit shall terminate the command with  CHECK CONDITION status and the sense key shall be set to
ILLEGAL REQUEST.

The medium transport element address specifies the medium transport element that is to be used in
executing this command. The default transport element address of zero may be used if this functionality
is supported by the medium changer. If the medium transport element address specified has not been
assigned or that element address has been assigned to a different element type,  the logical unit shall
return CHECK CONDITION status and the sense key shall be set to ILLEGAL REQUEST.

The source address, the first destination address, and the second destination address may represent a
storage element, an import export element, a data transfer element, or a medium transport element. If
the element address specified has not been assigned to a specific element of the medium changer, the
logical unit shall return CHECK CONDITION status and the sense key shall be set to ILLEGAL
REQUEST.

An Inv1 field of one specifies that the volume shall be inverted prior to depositing the volume into the
first destination element. Support for this field set to 1b is optional.

An Inv2 field of one specifies that the volume shall be inverted prior to depositing the volume into the
second destination element. Support for this field set to 1b is optional.

If the medium changer does not support volume rotation for handling double sided volumes, the Inv1
and Inv2 fields should be set to zero.  If either of these fields is non-zero, a logical unit which is not
capable of volume rotation shall return CHECK CONDITION status and the sense key shall be set to
ILLEGAL REQUEST.



6.2 INITIALIZE ELEMENT STATUS command

The INITIALIZE ELEMENT STATUS command (see table 4) shall cause the medium changer to check
all assigned element addresses for volume and any other status relevant to that element address. The
intent of this command is to enable the  Initiator to get a quick response from a subsequent READ
ELEMENT STATUS command. It may be useful to issue this command after a power failure, or if a
volume has been changed by an operator, or if configurations have been changed.

Support for this command is optional for an independent medium changer. This command has no
command parameter data. No command response data is returned.

If an implementation does not support this command, the same function is provided in the READ
ELEMENT STATUS command.

Table 4  _ INITIALIZE ELEMENT STATUS command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                          Operation code (07h)                         |
|-----+-----------------------------------------------------------------------|
| 1   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 2   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 3   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 4   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 5   |                                 Control                               |
+=============================================================================
+



6.3 MOVE MEDIUM command

The MOVE MEDIUM command (see table 5) requests that the target move a unit of media from a source
element to a destination element.  Support for this command is mandatory for both independent medium
changers and attached medium changers.

NOTE _ The Attached Changer model in SPC documents a subset of this command.  The Independent Changer 
version
documented here uses fields marked a reserved in SPC to implement additional features.

Table 5 _ MOVE MEDIUM command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                          Operation code (A5h)                         |
|-----+-----------------------------------------------------------------------|
| 1   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                        Transport element address                ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                        Source address                           ---|
| 5   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 6   | (MSB)                                                                 |
|-----+---                        Destination address                      ---|
| 7   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 8   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 9   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 10  |                                Reserved                       | Invert|
|-----+-----------------------------------------------------------------------|
| 11  |                                 Control                               |
+=============================================================================
+

The source address specifies the location that the medium is taken from, and the destination address
specifies the location that the medium is moved to.

If this command is received and the source element is empty or the destination element (if different
from the source element) is full, the target shall return CHECK CONDITION status and set the sense
key to ILLEGAL REQUEST.

The transport element address specifies the medium transport element that is to be used in executing
this command.  Attached medium changers shall set this field to zero. Independent changers may set
this field to zero to specify the default medium transport element if supported by the device. The
default medium transport element address of zero may be used if this functionality is supported by the
medium changer device.  If the address specified has not been assigned or has been assigned to an
element other than a medium transport element, the target shall return CHECK CONDITION status
and the set the sense key to ILLEGAL REQUEST.

The source address and the destination address may represent a storage element, an import export
element, a data transfer element, or a medium transport element. If the address specified has not been
assigned to a specific element of the medium changer, the target shall return CHECK CONDITION
status and set the sense key to ILLEGAL REQUEST.

The device capabilities MODE SENSE page provides a matrix with the supported source element or
destination element combinations for the MOVE MEDIUM command. See 7.3.1.

An invert bit of one specifies that the medium shall be inverted or rotated prior to depositing the
medium into the destination element. If the medium changer does not support medium rotation for
handling double sided media, the invert bit should be set to zero.  If this bit is non-zero, a target that is
not capable of medium rotation shall return CHECK CONDITION status and set the sense key to
ILLEGAL REQUEST.



6.4 POSITION TO ELEMENT command

The POSITION TO ELEMENT command (see table 6) shall position the specified medium transport
element such that further motion of the medium transport element is unnecessary to execute an
appropriate MOVE MEDIUM command between the medium transport element and the destination
element address specified.

Support for this command is optional for independent medium changers. This command has no command
parameter data. No command response data is returned.

Table 6 _ POSITION TO ELEMENT command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                          Operation code (2Bh)                         |
|-----+-----------------------------------------------------------------------|
| 1   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                     Transport element address                   ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                    Destination element address                  ---|
| 5   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 6   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 7   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 8   |                                Reserved                      | Invert |
|-----+-----------------------------------------------------------------------|
| 9   |                                Control                                |
+=============================================================================
+



An invert field value of one requests that the medium transport element be inverted or rotated before
positioning in front of the destination element address. A value of zero in this field requests that the
orientation of the medium transport element be unchanged before positioning in front of the destination
element. Support for this field set to 1b is optional.

6.5 READ ELEMENT STATUS command

The READ ELEMENT STATUS command (see table 7) requests that the target report the status of its
internal elements to the initiator. Support for this command is mandatory for both attached medium
changers and independent medium changers.

NOTE _ The Attached Changer model in SPC documents a subset of this command.  The Independent Changer 
version
documented here uses fields marked a reserved in SPC to implement additional features.

Table 7 _ READ ELEMENT STATUS command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                          Operation code (B8h)                         |
|-----+-----------------------------------------------------------------------|
| 1   |       Reserved           | VolTag |        Element type code          |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                        Starting element address                 ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                        Number of elements                       ---|
| 5   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 6   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 7   | (MSB)                                                                 |
|-----+---                                                                 ---|
| 8   |                           Allocation length                           |
|-----+---                                                                 ---|
| 9   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 10  |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
| 11  |                                Control                                |
+=============================================================================
+

A volume tag (VolTag) bit of one indicates that the target shall report volume tag information if this
feature is supported. A value of zero indicates that volume tag information shall not be reported. If the
volume tag feature is not supported this field shall be treated as reserved.

The element type code field specifies the particular element type(s) selected for reporting by this
command.  A value of zero specifies that status for all element types shall be reported.  The element
type codes are defined in table 8.

Table 8 _Element type code

     +=============-===================================================+
     |    Code     |  Description                                      |
     |-------------+---------------------------------------------------|
     |      0h     |  All element types reported, (valid in CDB only)  |
     |      1h     |  Medium transport element                         |
     |      2h     |  Storage element                                  |
     |      3h     |  Import export element                            |
     |      4h     |  Data transfer element                            |
     |   5h - Fh   |  Reserved                                         |
     +=============-===================================================+


The starting element address specifies the minimum element address to report. Only elements with an
element type code permitted by the element type code specification, and an element address greater
than or equal to the starting element address shall be reported. Element descriptor blocks are not
generated for undefined element addresses.

The number of elements specifies the maximum number of element descriptors to be created by the target
for this command. The value specified by this field is not the range of element addresses to be
considered for reporting but rather the number of defined elements to report. If the allocation length is
not sufficient to transfer all the element descriptors, the target shall transfer all those descriptors that
can be completely transferred and this shall not be considered an error.



6.5.1 Element status data

The data returned by the READ ELEMENT STATUS command is defined in table 9 and 6.5.2 through
6.5.6. Element status data consists of an eight-byte header, (see table 9) followed by one or more element
status pages.

Table 9 _ Element status data

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   | (MSB)                                                                 |
|-----+---                  First element address reported                 ---|
| 1   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                    Number of elements available                 ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   |                              Reserved                                 |
|-----+-----------------------------------------------------------------------|
| 5   | (MSB)                                                                 |
|-----+---                                                                 ---|
| 6   |                     Byte count of report available                    |
|-----+---                        (all pages, n - 7 )                      ---|
| 7   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 8   |                                                                       |
|-----+---                     Element status page(s)                      ---|
| n   |                                                                       |
+=============================================================================
+

The first element address reported field indicates the element address of the element with the
smallest element address found to meet the CDB request.

The number of elements available field indicates the number of elements meeting the request in the
command descriptor block.  The status for these elements is returned if sufficient allocation length was
specified.

The byte count of report available field indicates the number of bytes of element status page data
available for all elements meeting the request in the command descriptor block.  This value shall not be
adjusted to match the allocation length available.

NOTE _ The READ ELEMENT STATUS command can be issued with an allocation length of eight bytes in 
order to
determine the allocation length required to transfer all the element status data specified by the command.



6.5.2 Element status page

The element status page is defined in table 10.  Each element status page includes an eight-byte header
followed by one or more element descriptor blocks.  The header includes the element type code, the
length of each descriptor block and the number of bytes of element descriptor information that follow
the header for this element type.
Table 10 _Element status page

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                           Element type code                           |
|-----+-----------------------------------------------------------------------|
| 1   | PVolTag| AVolTag|                      Reserved                       |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                    Element descriptor length                    ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   |                              Reserved                                 |
|-----+-----------------------------------------------------------------------|
| 5   | (MSB)                                                                 |
|-----+---                                                                 ---|
| 6   |                Byte count of descriptor data available                |
|-----+---                      (this page, n - 7)                         ---|
| 7   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 8   |                                                                       |
|-----+---                     Element descriptor(s)                       ---|
| n   |                                                                       |
+=============================================================================
+

The element type code field indicates the element type reported by this page.

A primary volume tag (PVolTag) bit of one indicates that the primary volume tag information field is
present in each of the following element descriptor blocks. A value of zero indicates that these bytes
are omitted from the element descriptors that follow.

An alternate volume tag (AVolTag) bit of one indicates that the alternate volume tag information field
is present in each of the following element descriptor blocks. A value of zero indicates that these bytes
are omitted from the element descriptors that follow.

The element descriptor length field indicates the number of bytes in each element descriptor.

The byte count of descriptor data available field indicates the number of bytes of element descriptor
data available for elements of this element type meeting the request in the CDB. This value shall not
be adjusted to match the allocation length available.

Each element descriptor includes the element address and status flags; it may also contain sense code
information as well as other information depending on the element type (see 6.5.3 through 6.5.6).

6.5.3 Medium transport element descriptor

Table 11 defines the medium transport element descriptor.

Table 11 _Medium transport element descriptor

+======-========-========-========-========-========-========-========-========+
|   Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte  |        |        |        |        |        |        |        |        |
|======+=======================================================================|
|  0   | (MSB)                                                                 |
|------+---                      Element address                            ---|
|  1   |                                                                 (LSB) |
|------+-----------------------------------------------------------------------|
|  2   |            Reserved                        | Except |Reserved|  Full  |
|------+-----------------------------------------------------------------------|
|  3   |                            Reserved                                   |
|------+-----------------------------------------------------------------------|
|  4   |                      Additional sense code                            |
|------+-----------------------------------------------------------------------|
|  5   |                  Additional sense code qualifier                      |
|------+-----------------------------------------------------------------------|
|  6   |                                                                       |
|------+---                         Reserved                                ---|
|  8   |                                                                       |
|------+-----------------------------------------------------------------------|
|  9   | SValid | Invert |                      Reserved                       |
|------+-----------------------------------------------------------------------|
| 10   | (MSB)                                                                 |
|------+---                Source storage element address                   ---|
| 11   |                                                                (LSB)  |
|------+-----------------------------------------------------------------------|
| 12   |                                                                       |
|------+---                Primary volume tag information                   ---|
| 47   |                   (Field omitted if PVolTag = 0)                      |
|------+-----------------------------------------------------------------------|
| 48   |                                                                       |
|------+---               Alternate volume tag information                  ---|
| 83   |                   (Field omitted if AVolTag = 0)                      |
|------+-----------------------------------------------------------------------|
| 84   |                                                                       |
|------+---                          Reserved                               ---|
| 87   |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|
| 88   |                                                                       |
|------+---                        Vendor-specific                          ---|
| z-1  |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|

The element address field gives the address of the medium changer element whose status is reported by
this element descriptor block.

An exception (Except) bit of one indicates the element is in an abnormal state.  An exception bit of zero
indicates the element is in a normal state.  If this bit is one, information on the abnormal state may be
available in the additional sense code and additional sense code qualifier bytes.

A full bit value of one indicates that the element contains a unit of media.  A value of zero indicates
that the element does not contain a unit of media.

The additional sense code field may provide specific information on an abnormal element state.  The
values in this field are as defined for the additional sense code of the REQUEST SENSE data (see
SPC).

The additional sense code qualifier field may provide more detailed information on an abnormal
element state.  The values in this field are as defined for the additional sense code qualifier of the
REQUEST SENSE data (see SPC).

A source valid (SValid) bit value of one indicates that the source storage element address field and the
invert bit information are valid. A value of zero indicates that the values in these fields are not valid.

An invert bit value of one indicates that the unit of media now in this element was inverted by MOVE
MEDIUM or EXCHANGE MEDIUM operations since it was last in the source storage element.  A value
of zero indicates that no inversion occurred during the operation.

The source storage element address field provides the address of the last storage element this unit of
media was moved.  This field is valid only if the SValid bit is one.

The primary and alternate volume tag information fields provide for identifying the unit of media
residing in this element (see 5.9). Either or both of these fields may be omitted for all the element
descriptor blocks that comprise an element status page as indicated by the PVolTag and AVolTag bits
in the element status page header.


6.5.4 Storage element descriptor

Table 12 defines the storage element descriptor.

Table 12 _ Storage element descriptor

+======-========-========-========-========-========-========-========-========+
|   Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte  |        |        |        |        |        |        |        |        |
|======+=======================================================================|
|  0   | (MSB)                                                                 |
|------+---                      Element address                            ---|
|  1   |                                                                 (LSB) |
|------+-----------------------------------------------------------------------|
|  2   |            Reserved               | Access | Except |Reserved|  Full  |
|------+-----------------------------------------------------------------------|
|  3   |                            Reserved                                   |
|------+-----------------------------------------------------------------------|
|  4   |                       Additional sense code                           |
|------+-----------------------------------------------------------------------|
|  5   |                   Additional sense code qualifier                     |
|------+-----------------------------------------------------------------------|
|  6   |                                                                       |
|------+---                         Reserved                                ---|
|  8   |                                                                       |
|------+-----------------------------------------------------------------------|
|  9   | SValid | Invert |                      Reserved                       |
|------+-----------------------------------------------------------------------|
| 10   | (MSB)                                                                 |
|------+---                    Source element address                       ---|
| 11   |                                                                (LSB)  |
|------+-----------------------------------------------------------------------|
| 12   |                                                                       |
|------+---                 Primary volume tag information                  ---|
| 47   |                    (Field omitted if PVolTag = 0)                     |
|------+-----------------------------------------------------------------------|
| 48   |                                                                       |
|------+---                Alternate volume tag information                 ---|
| 83   |                    (Field omitted if PVolTag = 0)                     |
|------+-----------------------------------------------------------------------|
| 84   |                                                                       |
|------+---                         Reserved                                ---|
| 87   |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|
| 88   |                                                                       |
|------+---                      Vendor unique                              ---|
| z-1  |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|

An access bit value of one indicates that access to the element by a medium transport element is
allowed.  An access bit of zero indicates that access to the element by the medium transport element is
denied.

The source storage element address field provides the address of the last storage element this unit of
media was moved from. This element address value may or may not be the same as this element. This
field is valid only if the SValid bit is one.

For fields not defined in this subclause, see 6.5.3.



6.5.5 Import export element descriptor

Table 13 defines the import export element descriptor.

Table 13 _ Import export element descriptor

+======-========-========-========-========-========-========-========-========+
|   Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte  |        |        |        |        |        |        |        |        |
|======+=======================================================================|
|  0   | (MSB)                                                                 |
|------+---                        Element address                          ---|
|  1   |                                                                 (LSB) |
|------+-----------------------------------------------------------------------|
|  2   |     Reserved    | InEnab | ExEnab | Access | Except | ImpExp |  Full  |
|------+-----------------------------------------------------------------------|
|  3   |                             Reserved                                  |
|------+-----------------------------------------------------------------------|
|  4   |                        Additional sense code                          |
|------+-----------------------------------------------------------------------|
|  5   |                    Additional sense code qualifier                    |
|------+-----------------------------------------------------------------------|
|  6   |                                                                       |
|------+---                          Reserved                               ---|
|  8   |                                                                       |
|------+-----------------------------------------------------------------------|
|  9   | SValid | Invert |                      Reserved                       |
|------+-----------------------------------------------------------------------|
| 10   | (MSB)                                                                 |
|------+---                  Source storage element address                 ---|
| 11   |                                                                (LSB)  |
|------+-----------------------------------------------------------------------|
| 12   |                                                                       |
|------+---                  Primary volume tag information                 ---|
| 47   |                     (Field omitted if PVolTag = 0)                    |
|------+-----------------------------------------------------------------------|
| 48   |                                                                       |
|------+---                 Alternate volume tag information                ---|
| 83   |                     (Field omitted if PVolTag = 0)                    |
|------+-----------------------------------------------------------------------|
| 84   |                                                                       |
|------+---                          Reserved                               ---|
| 87   |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|
| 88   |                                                                       |
|------+---                         Vendor unique                           ---|
| z-1  |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|

An import enable (InEnab) bit of one indicates that the import export element supports movement of
media into the scope of the medium changer device.  An InEnab bit of zero indicates that this element
does not support import actions.

An export enable (ExEnab) bit of one indicates that the import export element supports movement of
media out of the scope of the medium changer device. An ExEnab bit of zero indicates that this element
does not support export actions.

An access bit of one indicates that access to the import export element by a medium transport element is
allowed.  An access bit of zero indicates access to the import export element by medium transport
elements is denied.

NOTE_ An example of when access would be denied is when the operator has exclusive access to the import 
export
element.

An import export (ImpExp) bit of one indicates the unit of media in the import export element was
placed there by an operator.  An ImpExp bit of zero indicates the unit of media in the import export
element was placed there by the medium transport element.

For fields not defined in this clause, see 6.5.3.



6.5.6 Data transfer element descriptor

Table 14 defines the data transfer element descriptor.

Table 14 _Data transfer element descriptor

+======-========-========-========-========-========-========-========-========+
|   Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte  |        |        |        |        |        |        |        |        |
|======+=======================================================================|
|  0   | (MSB)                                                                 |
|------+---                      Element address                            ---|
|  1   |                                                                 (LSB) |
|------+-----------------------------------------------------------------------|
|  2   |            Reserved               | Access | Except |Reserved|  Full  |
|------+-----------------------------------------------------------------------|
|  3   |                            Reserved                                   |
|------+-----------------------------------------------------------------------|
|  4   |                       Additional sense code                           |
|------+-----------------------------------------------------------------------|
|  5   |                   Additional sense code qualifier                     |
|------+-----------------------------------------------------------------------|
|  6   |Not bus|Reserved|ID valid|LU valid|Reserved|    Logical unit number    |
|------+-----------------------------------------------------------------------|
|  7   |                         SCSI bus address                              |
|------+-----------------------------------------------------------------------|
|  8   |                             Reserved                                  |
|------+-----------------------------------------------------------------------|
|  9   | SValid | Invert |                      Reserved                       |
|------+-----------------------------------------------------------------------|
| 10   | (MSB)                                                                 |
|------+---              Source storage element address                     ---|
| 11   |                                                                (LSB)  |
|------+-----------------------------------------------------------------------|
| 12   |                                                                       |
|------+---                 Primary volume tag information                  ---|
| 47   |                    (Field omitted if PVolTag = 0)                     |
|------+-----------------------------------------------------------------------|
| 48   |                                                                       |
|------+---                Alternate volume tag information                 ---|
| 83   |                    (Field omitted if PVolTag = 0)                     |
|------+-----------------------------------------------------------------------|
| 84   |                                                                       |
|------+---                         Reserved                                ---|
| 87   |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|
| 88   |                                                                       |
|------+---                        Vendor unique                            ---|
| z-1  |    (Field moved up if volume tag information field(s) are omitted.)   |
|------+-----------------------------------------------------------------------|


An access bit value of one indicates access to the data transfer element by the medium transport element
is allowed.  A value of zero indicates access to the data transfer element by a medium transport element
is denied.

NOTE_ Access to the data transfer element by medium transport elements might be denied if a data transfer 
operation
was under way. Note that a one value in this bit may not be sufficient to ensure a successful operation. This bit 
can
only reflect the best information available to the medium changer device, which may not accurately reflect the 
state of
the primary (data transfer) device.

A not this bus (not bus) bit value of one indicates that the SCSI bus address and logical unit number
values are not valid for the SCSI bus used to select the medium changer device. A not bus bit value of
zero indicates that the SCSI address and logical unit values, if valid, are on the same bus as the
medium changer device.

An ID Valid bit value of one indicates that the SCSI bus address field contains valid information. An
LU Valid bit value of one indicates that the logical unit number field contains valid information.

The SCSI bus address field, if valid, provides the SCSI address (binary representation) of the primary
device served by the medium changer at this element address.

The logical unit number field, if valid, provides the logical unit number within the SCSI bus device of
the primary device served by the medium changer at this element address.

For fields not defined in this clause, see 6.5.3.



6.6 RELEASE (6) command

The RELEASE (6) command (see table 15) is used to release a previously reserved logical unit, or, if the
element release option is implemented, to release previously reserved elements within units.

Table 15 _ RELEASE (6) command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                           Operation code (17h)                        |
|-----+-----------------------------------------------------------------------|
| 1   |         Reserved         | 3rdPty | Third party device ID    | Element|
|-----+-----------------------------------------------------------------------|
| 2   |                           Reservation identification                  |
|-----+-----------------------------------------------------------------------|
| 3   |                           Reserved                                    |
|-----+-----------------------------------------------------------------------|
| 4   |                           Reserved                                    |
|-----+-----------------------------------------------------------------------|
| 5   |                           Control                                     |
+=============================================================================
+

Attached medium changers shall implement the RESERVE (6) command as defined in the SPC.
Element reservations are not allowed in attached medium changer usage.

Note: The Element bit is in the same position as the Extent bit in the SPC definition of RESERVE (6).  An 
attached
medium changer with a primary device that supports extents can not distinguish Element from Extent 
reservations.

The RESERVE and RELEASE commands provide the basic mechanism for contention resolution in
multiple initiator systems. A reservation may only be released by a RELEASE command from the
initiation that made it. It is not an error for an application client to attempt to release a reserveation
that is not currently valid, or is held by another initiator. In this case, the device server shall return
GOOD status without altering any other reservation.

6.6.1 Logical unit release (Mandatory)

If the element bit is zero, this command shall cause the device server to terminate all non-third party
unit and element reservations that are active from the initiator to the specified logical unit. The
reservation ID field in the command descriptor shall be ignored by the device server.

6.6.2 Element release (Optional)

If the element bit is one and the element release option is implemented, this command shall cause any
reservation from the requesting initiator with a matching reservation identification to be terminated.
Other reservations from the requesting initiator shall remain in effect.

If the element bit is one and the element release option is not implemented, the RELEASE command
shall be terminated with CHECK CONDITION status and the sense key shall be set to ILLEGAL
REQUEST.  This option shall be implemented if the element reservation option (see 6.8.2) is
implemented.


6.6.3 Third party release (Mandatory)

The third_party release option of the RELEASE command allows an initiator to release a unit or
elements within a unit that were previously reserved using third_party reservation (see ***).
Third_party release shall be  implemented if third_party reserve is implemented.

If the third_party (3rdPty) bit is zero, the third-party release option is not requested.  If the 3rdPty bit
is one and the target implements the third-party release option, the target shall release the specified
unit or elements, but only if the reservation was made using the third_party reservation option by the
initiator that is requesting the release for the same SCSI device as specified in the third_party device
ID field.

If the 3rdPty bit is one and the target does not implement the third_party release option, the target
shall terminate the command with CHECK CONDITION status and the sense key shall be set to
ILLEGAL REQUEST.

6.7 REQUEST VOLUME ELEMENT ADDRESS command

The REQUEST VOLUME ELEMENT ADDRESS command (see table 16) is used to transfer the results of
a SEND VOLUME TAG command. Multiple REQUEST VOLUME ELEMENT ADDRESS commands may
be used to retrieve the results of a single SEND VOLUME TAG command with the translate option.

Support for this command is optional for independent medium changers. This command has no command
parameter data. This command returns command response data.

The command response data returned by this command consists of a header as defined by table 7, plus
zero or more element type specific pages in the same format as defined by the READ ELEMENT
STATUS command.

For each SEND VOLUME TAG command, the logical unit shall be able to report in response to a
REQUEST VOLUME ELEMENT ADDRESS command zero or more elements that match a volume tag
template in element address order. Once information for a given element address has been reported,
only higher element addresses will be reported by subsequent REQUEST VOLUME ELEMENT
ADDRESS commands.

If a REQUEST VOLUME ELEMENT ADDRESS command is received and no prior SEND VOLUME TAG
command has been executed or the element list has been completely reported for the most recent
successful SEND VOLUME TAG command, the logical unit shall return command response data
consisting of only the volume element address header.

NOTE_ In order to ensure the successful completion of a SEND VOLUME TAG, REQUEST VOLUME 
ELEMENT
ADDRESS command sequence in a multi-Initiator environment, it may be necessary to assign the logical unit 
to the
Initiator prior to sending the SEND VOLUME TAG command and un assigning the logical unit after the last
REQUEST VOLUME ELEMENT ADDRESS command has completed.


Table 16 _ REQUEST VOLUME ELEMENT ADDRESS command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                          Operation code (B5h)                         |
|-----+-----------------------------------------------------------------------|
| 1   |            Reserved      | VolTag |        Element type code          |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                         Element address                         ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                   Number of elements to report                  ---|
| 5   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 6   |                               Reserved                                |
|-----+-----------------------------------------------------------------------|
| 7   | (MSB)                                                                 |
|-----+---                                                                 ---|
| 8   |                            Allocation length                          |
|-----+---                                                                 ---|
| 9   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
|10   |                                Reserved                               |
|-----+-----------------------------------------------------------------------|
|11   |                                 Control                               |
+=============================================================================
+

A volume tag (VolTag) field of one indicates that the logical unit shall report volume tag information,
if implemented by the logical unit. A value of zero indicates that volume tag information shall not be
reported. Support for this field set to 1b is optional.

The element type code field specifies the particular element type(s) selected for reporting by this
command. A value of zero specifies that status for all element types shall be reported. The element
type codes are defined in the READ ELEMENT STATUS command description in SPC. This field value
determines the element types to be reported from information prepared by the most recently successful
SEND VOLUME TAG command.

The element address field gives a medium changer element address whose interpretation depends on
the send action code processed with the last SEND VOLUME TAG command. The send action code is
returned in the volume element address header.  When the last send action code was a translate, the
element address field gives the minimum element address to be reported by this command. When the
send action code is assert, replace, and undefine, the element address field gives the particular element
whose volume tag information was modified.

The number of elements to report field specifies the maximum number of elements and volume tags to be
reported for this command. The value specified in this field is the number of elements to report of those
that match the last SEND VOLUME TAG command translate template. If the allocation length is not
sufficient to transfer all the element descriptors, the logical unit shall transfer all those descriptors
that can be completely transferred and this shall not be considered an error.

Table 17 _ Volume element address header format

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   | (MSB)                                                                 |
|-----+---                  First element address reported                 ---|
| 1   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                     Number of elements reported                 ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   |         Reserved         |            Send action code                |
|-----+-----------------------------------------------------------------------|
| 5   | (MSB)                                                                 |
|-----+---                                                                 ---|
| 6   |                       Byte count of report available                  |
|-----+---                        (all pages, x - 7 )                      ---|
| 7   |                                                                 (LSB) |
|=====+=======================================================================|
|8 to |                                                                       |
|  - -+---                        Element status page(s)                   ---|
| x   |                                                                       |
+=============================================================================
+

The send action code field reports the function performed by the last SEND VOLUME TAG command.

For fields not defined in this subclause, see the READ ELEMENT STATUS command description.



6.8 RESERVE (6) command

The RESERVE (6) command (see table 18) is used to reserve units or, if the element reservation option is
implemented, elements within a logical unit.

Table 18 _ RESERVE (6) command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                           Operation code (16h)                        |
|-----+-----------------------------------------------------------------------|
| 1   |        Reserved          | 3rdPty | Third party device ID    | Element|
|-----+-----------------------------------------------------------------------|
| 2   |                           Reservation identification                  |
|-----+-----------------------------------------------------------------------|
| 3   | (MSB)                                                                 |
|-----+---                        Element list length                      ---|
| 4   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 5   |                           Control                                     |
+=============================================================================
+

Attached medium changers shall implement the RESERVE (6) command as defined in the SPC.
Element reservations are not allowed in attached medium changer usage.

Note: The Element bit is in the same position as the Extent bit in the SPC definition of RESERVE (6).  An 
attached
medium changer with a primary device that supports extents can not distinguish Element from Extent 
reservations.

6.8.1 Logical unit reservation (Mandatory)

If the element bit is zero, this command shall request that the entire logical unit be reserved for the
exclusive use of the initiator as defined in SPC.  If the element bit is zero, the reservation identification
and the element list length shall be ignored.

If the unit, or any element within the unit, is reserved for another initiator, the target shall respond by
returning RESERVATION CONFLICT status.

If, after honoring the reservation, any other initiator attempts to perform any command on the reserved
unit other than an INQUIRY, REQUEST SENSE, RESERVE, or a RELEASE command, the command
shall be rejected with RESERVATION CONFLICT status.

6.8.2 Element reservation (optional)

The reservation identification provides a means for an application client to identify each element
reservation.  This allows an application client in a multiple tasking environment, to have multiple
reservations outstanding.  The reservation identification is used in the RELEASE command to specify
which reservation is to be released.  It is also used in superseding RESERVE commands to specify which
reservation is to be superseded.

If the element reservation option is implemented, the element release option (see 6.6.2) shall also be
implemented.  These options permit multiple groups of elements within the unit to be reserved, each
with a separate reservation identification.

If the element bit is one, and the element reservation option is implemented, the device server shall
process the reservation request as follows:

~The element list shall be checked for valid element addresses.  If any element address is
invalid for this unit, the command shall be terminated with CHECK CONDITION status and
the sense key shall be set to ILLEGAL REQUEST. The element list shall be checked for invalid
element overlaps with other element descriptors in the element list and if invalid overlaps are
found, the command shall be terminated with CHECK CONDITION status and the sense key
shall be set to ILLEGAL REQUEST.

~If the requested reservation does not conflict with any active or previously requested
reservation, the elements specified shall be reserved until superseded by another valid
RESERVE command from the initiator that made the reservation, or until released by a
RELEASE command from the same initiator, by a TARGET RESET task management function
from any initiator, or by a hard reset condition, or by a power on cycle. If either of the last three
conditions occur, a unit attention condition shall be generated.

~If the reservation request conflicts with an existing reservation, then the device server shall
return RESERVATION CONFLICT status.

~If the element bit is one, and the element reservation option is not implemented, the RESERVE
command shall be terminated with CHECK CONDITION status and the sense key shall be set
to ILLEGAL REQUEST.


The size of the element list shall be defined by the element list length parameter.  The element list
shall consist of zero or more descriptors as shown in table 19.  Each element list descriptor defines a
series of elements beginning at the specified element address for the specified number of elements.  If
the number of elements is zero, the element list shall begin at the specified element address and
continue through the last element address on the unit.

Table 19  _ Data format of element list descriptors

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                                                                       |
|-----+---                         Reserved                                ---|
| 1   |                                                                       |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                        Number of elements                       ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                        Element address                          ---|
| 5   |                                                                 (LSB) |
+=============================================================================
+

If an initiator issues a command to an element that has been reserved by a different initiator, the
command shall not be performed and the command shall be terminated with a RESERVATION
CONFLICT status.  If a reservation conflict precludes any part of the command, none of the command
shall be performed.

6.8.3 Third party reservation (Mandatory)

The third_party reservation option of the RESERVE command allows an application client to reserve a
logical unit or elements within a logical unit for another SCSI device.

If the third_party (3rdPty) bit is zero, the third_party reservation option is not requested. If the
3rdPty bit is one, the RESERVE command shall reserve the specified unit or elements for the SCSI
device specified in the third_party device ID field.  The target shall preserve the reservation until it
is superseded by another valid RESERVE command from the initiator that made the reservation or
until it is released by the same initiator, by a TARGET RESET task management function from any
initiator, a hard reset condition, or by a power on cycle.  The target shall ignore any attempt to release
the reservation made by any other initiator.

In the RESERVE (6) command, the Third party device ID field is restricted to three bits (values 0 to 7).
If larger Third party device ID values are required, the RESERVE (10) command must be used.

After a third party reservation has been granted, the initiator that sent the RESERVE command shall
be treated like any other initiator. Reservation conflicts shall occur in all cases where another
initiator is not allowed access due to the reservation.



6.8.4 Superseding reservations

An initiator that holds a current reservation may modify that reservation by issuing another RESERVE
command to the same unit and, if the element bit is one, using the same reservation identification.  The
superseding RESERVE command shall release the previous reservation in place when the new
reservation request is granted.  The current reservation shall not be modified if the new reservation
request cannot be granted.  If the superseding reservation cannot be granted because of conflicts with a
previous active reservation (other than the reservation being superseded), the target shall return
RESERVATION CONFLICT status.

NOTE_ Superseding reservations are principally intended to allow the SCSI device ID to be changed on a 
reservation
using the third-party reservation option.


6.9 SEND VOLUME TAG command

The SEND VOLUME TAG command (see table 20) transfers a volume tag template to be used for a
search of existing volume tag information or new volume tag information for one media changer element
address. The function of the command is conveyed by the send action code field value. The REQUEST
VOLUME ELEMENT ADDRESS command may be used to transfer the results of a translate search
operation.

Support for this command is optional for independent medium changers. This command may have
command parameter data. No command response data is returned.


Table 20 _ SEND VOLUME TAG command

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                          Operation code (B6h)                         |
|-----+-----------------------------------------------------------------------|
| 1   |              Reserved             |        Element type code          |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                         Element address                         ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   |                               Reserved                                |
|-----+-----------------------------------------------------------------------|
| 5   |         Reserved         |              Send action code              |
|-----+-----------------------------------------------------------------------|
| 6   |                                                                       |
|-----+---                            Reserved                             ---|
| 7   |                                                                       |
|-----+-----------------------------------------------------------------------|
| 8   | (MSB)                                                                 |
|-----+---                       Parameter list length                     ---|
| 9   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
|10   |                               Reserved                                |
|-----+-----------------------------------------------------------------------|
|11   |                                Control                                |
+=============================================================================
+

The element type code field specifies an element type specification as defined in the READ ELEMENT
STATUS command description in SPC. If the send action code indicates a translate operation, this field
indicates the element types to be searched.  If the value is zero, all element types are candidates for a
translate operation. If the send action code does not indicate a translate, this field shall be treated as
reserved.

The element address field gives a medium changer element address whose interpretation depends on
the send action code received with this command. When the send action code is a translate, the element
address field gives the starting element to be examined for satisfaction of the search criteria. When
the send action code is assert, replace, and undefine the element address field gives the specific element
address where volume tag information for a volume is to be modified.

The send action code field gives the function to be performed by this command as listed in table 21.

Table 21 _ Send volume tag action codes

+=============-===============================================================+
|    Code     |  Description                                                  |
|-------------+---------------------------------------------------------------|
|      0h     |  Translate - search all defined volume tags                   |
|      1h     |  Translate - search only primary volume tags                  |
|      2h     |  Translate - search only alternate volume tags                |
|      3h     |  Reserved                                                     |
|      4h     |  Translate - search all defined tags - ignore sequence numbers|
|      5h     |  Translate - search primary tags - ignore sequence numbers    |
|      6h     |  Translate - search alternate tags - ignore sequence numbers  |
|      7h     |  Reserved                                                     |
|      8h     |  Assert - as the primary volume tag - if tag now undefined    |
|      9h     |  Assert - as the alternate volume tag - if tag now undefined  |
|      Ah     |  Replace - the primary volume tag - current tag ignored       |
|      Bh     |  Replace - the alternate volume tag - current tag ignored     |
|      Ch     |  Undefine - the primary volume tag - current tag ignored      |
|      Dh     |  Undefine - the alternate volume tag - current tag ignored    |
|   Eh - 1Bh  |  Reserved                                                     |
|  1Ch - 1Fh  |  Vendor-specific                                              |
+=============================================================================
+

Translate operations request that the logical unit search the volume tag information available for
volumes at defined element addresses for volume tag information that matches the template given by
the command parameter data. The resulting information may be reported via the REQUEST VOLUME
ELEMENT ADDRESS command.

Assert operations define volume tag information for a single volume at an element address that does not
currently have defined volume tag information. A CHECK CONDITION status with the sense key set
to ILLEGAL REQUEST is reported if the volume at the selected element address already has defined
volume tag information. In this case, the original volume tag information shall not be changed. Support
for this field set to an assert function value is optional.

Replace operations define or overwrite volume tag information for a single volume at one element
address. Any previously defined volume tag information is overwritten. Support for this field set to a
replace function value is optional.

Undefine operations cause any previously defined volume tag information for the volume at the
specified element address to be cleared. It shall not be considered an error to undefine volume tag
information that was not previously defined. Support for this field set to an undefine function value is
optional.

If a logical unit implements volume tag information, it may choose to not implement the functions that
modify volume tag information. For such an implementation a request for any assert, replace or undefine
function shall cause the SEND VOLUME TAG command to be terminated with CHECK CONDITION
status and the sense key shall be set to ILLEGAL REQUEST.

The parameter list length field shall be zero for undefine functions.

The volume tag information sent as command parameter data for translate, assert and replace functions
is defined in table 22.

Table 22 _ Send volume tag parameters format

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |                                                                       |
|- - -+---               Volume identification template field              ---|
| 31  |                                                                       |
|-----+-----------------------------------------------------------------------|
| 32  |                                                                       |
|-----+---                             Reserved                            ---|
| 33  |                                                                       |
|-----+-----------------------------------------------------------------------|
| 34  | (MSB)                                                                 |
|- - -+---                  Minimum volume sequence number                 ---|
| 35  |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 36  |                                                                       |
|-----+---                              Reserved                           ---|
| 37  |                                                                       |
|-----+-----------------------------------------------------------------------|
| 38  | (MSB)                                                                 |
|- - -+---                     Maximum volume sequence number              ---|
| 39  |                                                                 (LSB) |
+=============================================================================
+

The volume identification template field specifies a search template for translate functions and the
exact value of the new volume identification information for other SEND VOLUME TAG command
functions.

As a search template, this field may contain the wildcard characters `?' and `*' (3Fh and 2Ah).

~`?' will match any single character.

~ `*' will match any string of characters.  When it appears in a template the remainder of the
template at higher offsets in the field is not used.

For an assert, replace, or undefine function, this field shall not contain the `?' or `*' wildcard characters.

The minimum volume sequence number field specifies the new sequence number for the assert and replace
functions.  For a translate, this field specifies the least value in the volume sequence number field of the
volume tag information that will meet the search specification.

The maximum volume sequence number field specifies the maximum value in a volume sequence number
field of the volume tag information that meets the search specification. This field is ignored for assert,
replace and undefine functions.


7 Parameters

This clause defines the parameters used for independent medium changers devices.  Attached medium
changers use the parameters defined for the primary device type.

7.1 Diagnostic parameters

This subclause defines the descriptors and pages for diagnostic parameters used with independent
medium changer devices.

The diagnostic page codes for independent medium changer devices are defined in table 23.

Table 23 _ Diagnostic page codes

+=============-==================================================-============+
|  Page code  |  Description                                     | Subclause  |
|-------------+--------------------------------------------------+------------|
|     00h     |  Supported diagnostic page                       |    SPC     |
|  01h - 3Fh  |  Reserved (for all device type pages)            |            |
|  40h - 7Fh  |  Reserved                                        |            |
|  80h - FFh  |  Vendor-specific pages                           |            |
+=============================================================================
+

7.2 Log parameters

This subclause defines the descriptors and pages for log parameters used with independent medium
changer devices.

The log page codes for independent medium changer devices are defined in table 24.

Table 24 _ Log  page codes

+=============-==================================================-============+
|  Page code  |  Description                                     | Subclause  |
|-------------+--------------------------------------------------+------------|
|     00h     |  Supported log pages                             |    SPC     |
|     06h     |  Non-medium error page                           |    SPC     |
|     07h     |  Last n error events page                        |    SPC     |
|  01h - 05h  |  Reserved                                        |            |
|  08h - 2Fh  |  Reserved                                        |            |
|     3Fh     |  Reserved                                        |            |
|  30h - 3Eh  |  Vendor-specific pages                           |            |
+=============================================================================
+




7.3 Mode parameters

This subclause defines the descriptors and pages for mode parameters used with independent medium
changer devices.

The mode parameter list, including the mode parameter header and mode block descriptor, are defined
in the SPC standard.

The medium-type code field is contained in the mode parameter header. This field is reserved for
independent medium changer devices.

The device specific parameter field is contained in the mode parameter header. This field is reserved
for independent medium changer devices.

The density code field is contained in the mode parameter block descriptor. This field is reserved for
independent medium changer devices.

The mode page codes for independent medium changer devices are shown in table 25.

Table 25 _ Mode page codes

+=============-==================================================-============+
|  Page code  |  Description                                     | Subclause  |
|-------------+--------------------------------------------------+------------|
|     1Fh     |  Device capabilities                             |    7.3.1   |
|     1Dh     |  Element address assignment                      |    7.3.2   |
|     1Eh     |  Transport geometry parameters                   |    7.3.3   |
|  01h - 1Ch  |  Reserved                                        |            |
|     00h     |  Vendor-specific (does not require page format)  |            |
|  20h - 3Eh  |  Vendor-specific (page format required)          |            |
|     3Fh     |  Return all pages                                |            |
|             |     (valid only for the MODE SENSE command)      |            |
+=============================================================================
+



7.3.1 Device capabilities page

The device capabilities page (see table 26) defines characteristics of the element types on this
independent medium changer implementation. This information may be employed by the initiator to
determine functions permitted by the MOVE MEDIUM and EXCHANGE MEDIUM commands.

Table 26 _ Device capabilities page

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |   PS   |Reserved|         Page code (1Fh)                             |
|-----+-----------------------------------------------------------------------|
| 1   |                       Parameter length (12h)                          |
|-----+-----------------------------------------------------------------------|
| 2   |               Reserved            | StorDT | StorI/E| StorST | StorMT |
|-----+-----------------------------------------------------------------------|
| 3   |                           Reserved                                    |
|-----+-----------------------------------------------------------------------|
| 4   |               Reserved            | MT->DT | MT->I/E| MT->ST | MT->MT |
|-----+-----------------------------------------------------------------------|
| 5   |               Reserved            | ST->DT | ST->I/E| ST->ST | ST->MT |
|-----+-----------------------------------------------------------------------|
| 6   |               Reserved            |I/E->DT |I/E->I/E|I/E->ST |I/E->MT |
|-----+-----------------------------------------------------------------------|
| 7   |               Reserved            | DT->DT | DT->I/E| DT->ST | DT->MT |
|-----+-----------------------------------------------------------------------|
| 8   |                                                                       |
|-----+---                        Reserved                                 ---|
| 11  |                                                                       |
|-----+-----------------------------------------------------------------------|
| 12  |               Reserved            | MT<>DT | MT<>I/E| MT<>ST | MT<>MT |
|-----+-----------------------------------------------------------------------|
| 13  |               Reserved            | ST<>DT | ST<>I/E| ST<>ST | ST<>MT |
|-----+-----------------------------------------------------------------------|
| 14  |               Reserved            |I/E<>DT |I/E<>I/E|I/E<>ST |I/E<>MT |
|-----+-----------------------------------------------------------------------|
| 15  |               Reserved            | DT<>DT | DT<>I/E| DT<>ST | DT<>MT |
+=============================================================================
+

The parameters savable (PS) bit is only used with the MODE SENSE command.  This bit is reserved
with the MODE SELECT command. A PS bit of one indicates that the target is capable of saving the
page in a non-volatile, vendor-specific location.

In the field names on this page, the following element type abbreviations are used:
~MT _ a medium transport element,
~ST _ a storage element,
~I/E _ an import export element, and
~DT _ a data transfer element.
In the descriptions, XX and YY are any of the element type abbreviations.

A StorXX bit value of one indicated that the defined elements of type XX may provide independent
storage for a unit of media. A value of zero indicates that elements of type XX provide virtual sources or
destinations, that the location of the unit of media is provided by an element of some other type. The
value of StorST is one by the definition of that type. See  5.4.

An XX->YY bit value of one indicates that the medium changer device supports all MOVE MEDIUM
commands where the source is element type XX, the destination is element type YY and these element
addresses are otherwise valid. An XX->YY bit value of zero indicates that these MOVE MEDIUM
commands may or may not be valid depending on the particular elements requested. Those which are
not valid will be rejected with ILLEGAL REQUEST.

An XX<>YY bit value of one indicates that the medium changer device supports all EXCHANGE
MEDIUM commands where the source is element type XX, destination 1 is element type YY, destination
2 is the same type as the source element type and these element addresses are otherwise valid. An
XX<>YY bit value of zero indicates that these EXCHANGE MEDIUM commands may or may not be
valid depending on the particular elements requested. Those which are not valid will be rejected with
ILLEGAL REQUEST.



7.3.2 Element address assignment page

The element address assignment page (see table 27) is used to assign addresses to the elements of the
independent medium changer (MODE SELECT) and to report those assignments (MODE SENSE). This
page also defines the number of each type of element present.

Table 27 _ Element address assignment page

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |   PS   |Reserved|         Page code (1Dh)                             |
|-----+-----------------------------------------------------------------------|
| 1   |                           Parameter length (12h)                      |
|-----+-----------------------------------------------------------------------|
| 2   | (MSB)                                                                 |
|-----+---                        Medium transport element address         ---|
| 3   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 4   | (MSB)                                                                 |
|-----+---                        Number of medium transport elements      ---|
| 5   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 6   | (MSB)                                                                 |
|-----+---                        First storage element address            ---|
| 7   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 8   | (MSB)                                                                 |
|-----+---                        Number of storage elements               ---|
| 9   |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 10  | (MSB)                                                                 |
|-----+---                        First import export element address      ---|
| 11  |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 12  | (MSB)                                                                 |
|-----+---                        Number of import export elements         ---|
| 13  |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 14  | (MSB)                                                                 |
|-----+---                        First data transfer element address      ---|
| 15  |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 16  | (MSB)                                                                 |
|-----+---                        Number of data transfer elements         ---|
| 17  |                                                                 (LSB) |
|-----+-----------------------------------------------------------------------|
| 18  |                                                                       |
|-----+---                        Reserved                                 ---|
| 19  |                                                                       |
+=============================================================================
+

The parameters savable (PS) bit is only used with the MODE SENSE command. This bit is reserved
with the MODE SELECT command.  A PS bit of one indicates that the target is capable of saving the
page in a non-volatile vendor-specific location.

The first medium transport element address field identifies the first medium transport element
contained in the medium changer (other than the default medium transport address of zero). The
number of medium transport elements field defines the total number of medium transport elements
contained in the medium changer. If the number of medium transport elements field in a MODE SELECT
command is greater than the default value returned in the MODE SENSE parameter data, the target
shall return CHECK CONDITION status and set the sense key to ILLEGAL REQUEST.

The first storage element address field identifies the first medium storage element contained in the
medium changer. The number of storage elements field defines the total number of medium storage
elements contained in the medium changer. If the number of medium storage elements field in a MODE
SELECT command is greater than the default value returned in the MODE SENSE parameter data, the
target shall return CHECK CONDITION status and set the sense key to ILLEGAL REQUEST.

The first import export element address field identifies the first medium portal that is accessible both
by the medium transport devices and also by an operator from outside the medium changer. The number
of import export elements field defines the total number of import export elements contained in the
medium changer and accessible to the medium transport elements. If the number of import export
elements field in a MODE SELECT command is greater than the default value returned in the MODE
SENSE parameter data, the target shall return CHECK CONDITION status and set the sense key to
ILLEGAL REQUEST .

NOTE _ The number of import export elements may be zero.

The first data transfer element address field identifies the first data transfer element contained in the
medium changer.  The data transfer elements may be either read/write or read-only devices.  The
number of data transfer field defines the total number of data transfer elements contained within the
medium changer and accessible to the medium transport elements. If the number of data transfer
elements field in a MODE SELECT command is greater than the default value returned in the MODE
SENSE parameter data, the target shall return CHECK CONDITION status and set the sense key to
ILLEGAL REQUEST .

Each element in the medium changer must have a unique address. If the address ranges defined for any
of the element types overlap, the target shall return CHECK CONDITION status and set the sense key
to ILLEGAL REQUEST.



7.3.3 Transport geometry parameters page

The transport geometry parameters page (see table 28) defines whether each medium transport element
is a member of a set of elements that share a common robotics subsystem and whether the element is
capable of media rotation. One transport geometry descriptor is transferred for each medium transport
element, beginning with the first medium transport element. (Other than the default transport element
address of zero.)

Table 28 _ Transport geometry parameters page

+=====-========-========-========-========-========-========-========-========+
|  Bit|   7    |   6    |    5   |    4   |    3   |    2   |    1   |    0   |
|Byte |        |        |        |        |        |        |        |        |
|=====+=======================================================================|
| 0   |   PS   |Reserved|         Page code (1Eh)                             |
|-----+-----------------------------------------------------------------------|
| 1   |                           Parameter length                            |
|-----+-----------------------------------------------------------------------|
|     |                        Transport geometry descriptor(s)               |
|-----+-----------------------------------------------------------------------|
| 0   |                           Reserved                           | Rotate |
|-----+-----------------------------------------------------------------------|
| 1   |                Member number in transport element set                 |
+=============================================================================
+

The parameters savable (PS) bit is only used with the MODE SENSE command. This bit is reserved
with the MODE SELECT command. A PS bit of one indicates that the target is capable of saving the
page in a non-volatile vendor-specific location.

The parameter length specifies the number of bytes of transport geometry descriptors that follow. The
geometry of each medium transport element is defined using a two_byte field as defined below.

A rotate bit of one indicates that the medium transport element supports media rotation for handling
double-sided media. A rotate bit of zero indicates that the medium transport element does not support
media rotation.

The member number in set indicates the position of this element in a set of medium transport elements
that share a common robotics subsystem. The first element in a set has a member number of zero.

NOTE _ This page reports information about the way transport elements are physically clustered in a system. 
The
model for this is a medium changer device with more than one independent robotics subsystem, where each of 
these
supports multiple transport elements. The elements that are supported by a particular robotics subsystem form a 
set.
This sort of information is helpful for optimization and error recovery in such a large system. (Recall that in the 
model
for this device type, (see 5), the individual transport element is addressed not the robotics subsystem. An 
element is
defined to be a place where a unit of media may be at any point in time.)
                                         
