5-136 Maxtor Atlas 10K V
5.34 RESERVE (10) Command (56h)
The RESERVE and the RELEASE commands are used for contention resolution in
multiple-initiator systems. The RESERVE command is used to reserve a logical unit.
If RESERVE (10) is used, then RELEASE (10) is also used. The data format and the
field descriptions are described in Table 5-182 and Table 5-183 respectively. The data
format for the Event Descriptors is described in Table 5-184.
Table 5-182 RESERVE (10) Command Descriptor Block-Data Format
Table 5-183 RESERVE (10) Command-Field Descriptions
Bit
Byte
765 4 3210
0 Operation Code (56h)
1 Reserved 3rdPty Reserved LongID Extent
2 Reservation Identification
3 Third Party Device ID
4 - 6 Reserved
7 - 8
(MSB)
Parameter List Length
(LSB)
9 Control
Field Description
3rd Pty When set to 1, it indicates that the Third Party Device ID field is valid.
LongID
When 0, indicates that the third party device associated with the reservation release has a number
smaller than 255 and the ID value can be sent within the CDB. If set = 1, indicates that the third
party device ID is greater than 255, the ID value within the CDB is ignored, and the parameter list
length is at least eight.
Third Party
Device ID
Required and used only when the 3rdPty bit is set, in which case this field specifies the SCSI ID
of the initiator to be granted the reservation of the logical unit. The drive preserves the reservation
until one of the following occurs:
• It is superseded by another valid RESERVE command from the initiator.
• It is released by the same initiator.
• It is released by a TARGET RESET message from any initiator.
• It is released by a hard reset condition.
The drive ignores any attempt to release the reservation made by any other initiator. For example,
if ID7 sends ID2 a Third Party reservation on behalf of ID6 (the target at ID2 gets reserved for the
initiator ID6), then only ID7 can release the target at ID2 (using a Third Party release). ID6 cannot
release the reservation even though the reservation was made on its behalf.
Extent
If 0, requests that the entire logical unit be reserved for use only by the initiator until the request
is supplanted by another valid RESERVE command from the same initiator, or until released via
a RELEASE (10) command from the reserving initiator, a hard reset, or a power on cycle.
If set = 1, the extent reservation option is implemented. This option allows an application client in
a multitasking environment to have multiple reservations.
The size of the extent list is defined by the contents of the Parameter List Length field. The extent
list consists of zero or more descriptors. Each descriptor defines an extent beginning at the speci-
fied logical block address for the specified number of blocks. If the number of blocks is 0, the ex-
tent begins at the specified logical block address and continues through the last logical block
address on the logical unit. The data format of extent descriptors is shown in Table 5-184.