"I want the userspace program to be able to directly specify the DMA target address to avoid data copying from read()/write()."
"Does the driver support direct DMA writes into userspace memory (hundreds of megabytes to gigabytes) instead of kernel buffers?"