thanks. Will try the linux kernel mailing lists.
Regarding the device interfacing, my requirement deals with a set of data transfers, either be in DMA or PIO mode (for older hdds), in the current program (The one which I've written in assembly in DOS), I move the data to a location, fill up necessary details in the ATA Command Packet, send the command to the HDD ( In DMA Mode), the dma controller and HDD will do the rest.
You are right about the ATAPI timeouts and about the way the calls return to the program. I will be waiting at status registers of the drive to check if the call has passed / failed and proceed further. It sometimes can take more time, in order of milliseconds based on the amount of data I am pointing too at the DMA / PIO buffer in the ATA command packet. And I will not be waiting for the timeout there. (The timeout actually would be the HDD's internal read / write call based) and the result is sent as a signal in one of the status registers as a return value for my actual data transfer call.
I referred to that in my query as the read / write timeout. (I guess I am being a little void in stating my requirements and missing out a lot of key requirements / explanations!
).
It was a good start for me to get into discussion on this board with you and others as to refresh lots of things. It really helps to discuss with a geek (i hope i can address you as one!?
) to get things right and straight at times. (well most of the times!). It was a huge relief after burning mid night oil for weeks at various issues (the current issue was/is still one of the major ones). I think I'll soon be active on this board whenever I can (once I complete my current task and get back home!), helping people.
Switching to the latest kernel has any value addition? Say, any version in 2.6.3?? There were some changes related to RAW or O_DIRECT (I could not remember the exactly) with the newer version.