I am porting a MacOS PCI driver written with IOKit to the new PCIDriverKit framework.
I am able to perform DMA with a contiguous buffer allocated inside the dext (with IOBufferMemoryDescriptor::Create).
But I would also like to perform DMA to and from a buffer allocated by an application.
What I exactly want to do is:
- Allocate an aligned buffer in the app (with e.g. 
posix_memalign) - Send the pointer to this buffer to the dext
 - In the dext, retrieve the list of pages descriptors to be able to perform DMA without copy into (or from) this buffer.
 
In IOKit, we could use methods such IOMemoryDescriptor::withAddressRange and IODMACommand::gen64IOVMSegments to map and retrieve the scatter gather list but I cannot find any information on how to do this in a dext with the PCIDriverKit framework.
Can anybody help me on how to do that?