This message is from the T13 list server.
Jim H: Thanks for posting your view. I am saying: Scsi-over-whatever people should learn to distinguish the CDB from "command". We have the CDB well-defined, let's not destabilise that. What is at issue here is what the whole command and the whole status is. Scsi-over-whatever protocols differ most significantly in how little of the command and how little of the status they pass over the bus. The whole command includes a plain indication of how many bytes of Data the host asked to copy which way, and a plain indication of how long the Cdb is. The whole status includes a plain indication of how many bytes of Data were copied which way, and whether the device asked to copy more bytes or to copy data the wrong way. We know these are the whole command and the whole status because across platforms - Microsoft Apple Linux bootBios ... - this is the Api at the bus level in the host. In the words of http://members.aol.com/plscsi/cdbcomplete.html#incomplete ... 1. A Cdb Is Not Enough In the terms of the C programming language, we say that how Scsi is spoken across platforms is: int plscsiCall(void const * cdb, int cdbLength, void * data, int dataLength, int pleaseIn); Ask yourself now, why is this common interface not just: int plscsiCall(void const * cdb, void * data); Why not prefer the smaller interface? Because the Cdb is not complete. The bytes of a Cdb do not plainly tell the device the host's idea of: cdbLength = how many bytes the Cdb contains dataLength = how many Data bytes to copy pleaseIn = whether to copy Data bytes In to the host or to copy bytes Out from the host Now remember that many Scsi-over-whatever protocols pass nothing but the Cdb to the device. Therefore, necessarily, the host and the device choose independently how many Data bytes to coy which way ... Pat LaVarre >>> [EMAIL PROTECTED] 04/17/02 13:47 PM >>> This message is from the T13 list server. It seems that another definition is needed. CDB * is NOT just the 1-byte opcode * IS a 6 to 12-byte 'packet' of data that contains a) the opcode for a SCSI/ATAPI command b) command-specific parameters * INCLUDING a non-zero 'allocation length' if any data is to be transferred (units = bytes or number of blocks (of 'current logical blocksize') Judging from the way the term CDB is used, we have * one set of people treating it as if it were merely a command opcode * one set of people with the 'correct' definition Please make sure you know which definition YOU are using !!! - Jim Hatfield Overland Data, Inc. ...
