[comp.periphs.scsi] Set limits command has no relative bit?

colin@array.UUCP (Colin Plumb) (07/14/90)

I was reading ANSI X3.131 - 1986 this morning (teaching myself SCSI - it's
a hard slog) and came across command 0x33 - Set Limits.
From my notes, byte 1 (the second byte, after the opcode), has the format
LUNrrrRW
Where LUN is the LUN of the desired target, rrr are reserved bits, and
RW are read-inhibit and write-inhibit bits, respectively.  For the rest
of this series of linked commands, requests to access data out of the specified
(start, length, just like read/write) range, or that violate the conditions
(read if read-inhibit = 1, write if write-inhibit = 1) within the range
will get Check Condition status, sense key = DATA PROTECT.

This is a group 1, 10-byte command.  What I don't understand is why it doesn't
have a Relative Address bit in the lsb of byte 1.  It seems this would be
useful, for example to do a search and then restrict accesses to the blocks
containing the record in question.  It also seems unusual that the group 1
encoding would be violated.

Is this a typo in the standard, or indeed a wierd special case?  Thanks
for any advice.

Oh, BTW, I have a glossy for a WangDAT 1300 which mentions the commands
supported, including:
Locate
Read Block Limits
Read Buffer
Read Position
Seek Block
Write Buffer

Are these SCSI-2 inventions or something?  Thanks for any ideas.
-- 
	-Colin

jlohmeye@entec.Wichita.NCR.COM (John Lohmeyer) (07/16/90)

In article <162@array.UUCP> colin@array.UUCP (Colin Plumb) writes:
>I was reading ANSI X3.131 - 1986 this morning (teaching myself SCSI - it's
>a hard slog) and came across command 0x33 - Set Limits.

It's good you did this early in the day, otherwise you might have risked
unintended slumber :-).

>This is a group 1, 10-byte command.  What I don't understand is why it doesn't
>have a Relative Address bit in the lsb of byte 1.  It seems this would be
>useful, for example to do a search and then restrict accesses to the blocks
>containing the record in question.  It also seems unusual that the group 1
>encoding would be violated.
>Is this a typo in the standard, or indeed a wierd special case?  Thanks
>for any advice.

It is not a typo.  You have to judge wierdness for yourself.  The SET LIMITS
command is a little-used command that comes from the IBM Block Mux I/O
Channel.  IBM permitted some non-O/S applications to include "Channel
Programs".  The O/S would attempt to protect itself from security violations
by prepending the I/O Channel equivalent of the SET LIMITS command in front
of the channel program (analogous to a string of linked commands).  Thus,
the intended usage of the SET LIMITS command is to be the FIRST command in
a linked list of commands.  As such, the RELADR bit would be useless.  (Also
note that the SCSI standard requires that a second SET LIMITS command in
a linked list be rejected.)

>Oh, BTW, I have a glossy for a WangDAT 1300 which mentions the commands
>supported, including:
>Locate
>Read Block Limits
>Read Buffer
>Read Position
>Seek Block
>Write Buffer
>
>Are these SCSI-2 inventions or something?  Thanks for any ideas.

Yep!  They are SCSI-2 commands, except READ BLOCK LIMITS which is also
SCSI-1 and SEEK BLOCK which might actually be "SEEK".


-- 
John Lohmeyer         J.Lohmeyer@Wichita.NCR.COM
NCR Corp.             uunet!ncrlnk!ncrwic!entec!jlohmeye
3718 N. Rock Rd.      Voice: 316-636-8703
Wichita, KS 67226     SCSI BBS 316-636-8700 300/1200/2400 24 hours