gary@skat.usc.edu (Gary Craig) (07/18/90)
Help! The project I am working on requires that an asynchronous device driver be written. The device is 68030-based, and allows DMA from/to the host Sun by other computers on an external bus. We have the (outside world) <-> device interface squared away, but the device driver we currently have (author now unavailable) only allows processes to make synchronous I/O requests (i.e. the caller does not get control back until the I/O is complete). We are attempting to modify this driver to allow asynchronous requests, so that (for example) the caller would be notified that the DMA is complete by delivery of a SIGIO; he'd then do ioctl's to find out what happened. The host is a Sun 4/380 running SunOS 4.0.3, vanilla. Questions: Is there anything not made clear in Sun's "Writing Device Drivers" manual relating to this task? Anyone have any hints? Specifically, will we encounter problems if the DMA destination address (in the caller's context) is part of a memory segment shared with another user process (via shmget, shmat)? Anything else I should know? Reply via email, please. Many thanks in advance. Gary Craig gary@skat.usc.edu