This message is from the T13 list server.
Pat, The problem is that your "falsifiable" statements are just strawmen. Hale and I (and others) have repeatedly told you how ATA/ATAPI work. Once again: on data out, the number of bytes the device gets and stored (or uses) is the number of bytes the host indicated by the parameters in the CDB. It is exactly that and no more or less. In UDMA the ATA protocol gives some "slack" to a host that sends more bytes than this - the device is required to clock them, use them in the CRC calculation, but otherwise ignore them. You have never presented any data that counters this behavior in a correctly function (i.e. one where you don't corrupt data) system. On data in the same rules apply for user data transfers (i.e. READ commands). For some commands that request parameters from the device, the host just indicates a maximum number of bytes it can receive - the device is free to send fewer bytes if it desires. The device never sends more words than allowed by the host. As Hale noted, if the byte count is odd then the word count may be rounded up by one byte (the "pad byte") since ALL ATA transfers are always physically 16 bits (a word) wide anyway). The host can interpret this data any way it wants - it can ignore it if it wants. Obviously if it requested an odd number of bytes then it should be smart enough to realize that it will get an even number of bytes, with the last one being an pad byte it can ignore. And indeed, the hosts appear to work fine with this situation every day. For all commands it is the device that terminates the command, so the host has to tell the device enough information to allow it to do that job. That's why we have these sorts of rules to begin with. Once again, I have not seen you present any data that contradicts this in a functioning host/device system. Indeed, the fact that a billion ATA/ATAPI devices work quite well every day indicates that these rules are being followed quite well. On another note, you keep on confusing other APIs with ATA/ATAPI. I'm perfectly willing to concede that programmers can call multiple APIs in such a manner that the parameters passed make a hash of the system. ATA/ATAPI protects itself to a degree with the classic strategies - range checking on the parameters for a command. But ultimately if the host tells a device to do something, then it will do it - that's the way computers work. GIGO (Garbage In, Garbage Out) is why programmers get well paid. If people are using the Microsoft APIs incorrectly (or Microsoft defined them incorrectly), then the solution is not to make changes in ATA/ATAPI. Jim -----Original Message----- From: Pat LaVarre [mailto:[EMAIL PROTECTED]] Sent: Sunday, January 27, 2002 11:33 PM To: [EMAIL PROTECTED] Subject: [t13] more falsifiable hypotheses, anyone? This message is from the T13 list server. > From: [EMAIL PROTECTED] > Date: Sunday - January 27, 2002 11:05 PM > Subject: UDma < Pio for byte count negotiation? ... > I really hope PAT reads all of it. Be aware, from this end, it seems Internet buffering is confusing our conversation. At this end I'm seeing, for example, Pat replies to Jim with an answer for a question Hale asks later in different words. This then leaves Pat unsure how to reply, hoping instead for Hale to volunteer to rejoin the thread where Pat & Jim left off. Specifically I look forward to having people hear & answer two nutshells I found compelling: > Subject: just use Pio > From: <[EMAIL PROTECTED]> > Date: Saturday - January 26, 2002 9:30 AM ... > Subject: UDma != Pio for byte count negotiation? > From: [EMAIL PROTECTED] > Date: Saturday - January 26, 2002 8:11 AM I still have hope we will jointly succeed in escaping the syndrome of "If you just say life shouldn't be this way, and I just say it is, and you just say it shouldn't be, and I just say it is, we have nothing further to say." In the mail cited above from me I gave a couple of examples of falsifiable (i.e. scientific) hypotheses about how life really is. Specifically I find the theory that the host knows in advance how many bytes will move which way whenever no ERR is reported to be readily falsifiable. Sorry I was so slow to imagine that anyone lived in a world where that theory does hold true. Me, I work mostly with commodity desktop hosts - Apple, Microsoft, Linux. > I really hope PAT reads all of it. Personally, I imagine I will be mostly offline for the next week or so - I'm finding <http://www.usenix.org/events/fast/tech.html> to be pleasantly overwhelming. Sorry for the short notice. Enjoy. Pat LaVarre Subscribe/Unsubscribe instructions can be found at www.t13.org. Subscribe/Unsubscribe instructions can be found at www.t13.org.
