I’m writing a Neutrino resource manager for a PCI card my company
builds. I have a large part of the resource manager up and running
correctly. Now, I need to map part of the card into a client
application’s address space.
The card is a multimedia card with a number of onboard frame buffers.
I’d like to be able to memory map those buffers directly into the client
application so the app can render directly into the frame buffer – the
same mechanism our apps use on other operating systems.
For example, our linux driver implements the mmap driver vector. The
driver performs the appropriate linux VM magic to map the pages for the
hardware into the client’s address space.
Is implementing io_mmap the right way to solve this problem for our
Neutrino driver? If so, where can I find information on how to implement
the io_mmap vector properly? All the docs I’ve found suggest delegating
completing to iofunc_mmap_default, but that I don’t see how to specify
that the pages so created should be backed by my hardware.
Any pointers or suggestions accepted.
Thanks in advance,