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