Hi, I am having trouble getting the aio_read and aio_suspend calls to work properly with a driver we have written to do DMA transfers via the PCI bus. I do not know if the driver is properly configured to enable the async xxxaread cb_ops function. I have searched high and low and cannot find anything written on this topic. Does anyone know under what conditions the xxxaread cb_ops function is called? In tracing my drivers activity, even though I call aio_read from the user process, the xxxread cb_ops is always called by the kernel. Although I am able to start the DMA, I am having trouble getting biodone to properly notify the user process, particularly when it is called from a timeout routine. I am running Solaris 8/9. Any information on how to properly write drivers that support async io or how to properly time out DMA completion would be greatly appreciated. Regards, Mike