This message is from the T13 list server.
> "Mcgrath, Jim" <[EMAIL PROTECTED]> 01/02/02 11:53AM Thanks again for being so willing to talk. > D = H ... for SCSI DATA OUTcommands. > It has to be this way ... a host that tried to change this > after the command is issued would violate the standard > and/or hang the system. If this is the way it "has to be" ... what makes it so? I'm still working towards posting my existing Win9XME/2KXP demoes that show Windows has nothing in place to make this so for data in or out. I have a long memory of plug 'n play bus traces that show often this isn't so for data in. I'm out looking for Linux & MacClassic/OSX demoes for data in or out. It's probably a good thing that data out isn't much used in plug 'n play. Much of what little data out we do see is ModeSelect data, which when coherently constructed by analogy to ModeSense data often is the length the device expects. > D = H (using your terminology) ... Thank you for adopting this algebraic shorthand. I'm more confident in algebra than in English - in particular, I find it much easier to describe the whole problem concisely. This particular shorthand is not original with me - people in Usb Mass circles use it: there D != H easily triggers a bus trace. H is the count of bytes the host expects to move. D is the count of bytes the device actually agrees to move. To avoid the confusion of working with negative numbers in comparisons, Hi = abs(H) when the host expects to move data in else zero, Ho = abs(H) when the host expects to move data out else zero ... Di = abs(D) when the device actually tries to move data in else zero, Do = abs(D) when the device actually tries to move data else zero. > D = H (using your terminology) for SCSI DATA OUT commands. > It has to be this way due to the nature of the SCSI parallel interface > (for which the command set was originally devised). > That is, a host that tried to change this after the command > is issued would violate the standard and/or hang the system. Ahh. Now we run up against the real world. Yea D = H 99% of the time and that's what works well everywhere. Agreed classic Scsi hosts crash/ hang/ or cope quietly when Hi < Di or Ho < Do, especially if H is nonzero. The ones that cope quietly necessarily manufacture/ toss way data like we agree Ide Dma requires for odd length transfers, else they reset under the covers. I've never seen a classic Scsi Pio host choke over Di < Hi or Do < Ho ... have you? I have seen Dma hosts hang til timeout for anything except D = H. Ide Dma generally is disturbing as a Scsi transport because it requires a host to necessarily manufacture/ toss way the residual data that the device did not willingly clock across the bus. No matter that a UDma transfer included the residual data in its Crc. This is disturbing no matter whether the max count of such data is 1 byte or more. But can we agree on how to extend the standard to report the count of bytes of residual data ... unless we first agree the max count of residual bytes that may appear in a bus trace? Pat LaVarre Subscribe/Unsubscribe instructions can be found at www.t13.org.
