On Fri, Nov 16, 2012 at 8:48 AM, Christian Borntraeger <borntrae...@de.ibm.com> wrote: > On 15/11/12 16:19, Stefan Hajnoczi wrote: > >> +#include "trace.h" >> +#include "hw/dataplane/vring.h" >> + >> +/* Map target physical address to host address >> + */ >> +static inline void *phys_to_host(Vring *vring, hwaddr phys) >> +{ >> + /* Adjust for 3.6-4 GB PCI memory range */ >> + if (phys >= 0x100000000) { >> + phys -= 0x100000000 - 0xe0000000; >> + } else if (phys >= 0xe0000000) { >> + fprintf(stderr, "phys_to_host bad physical address in " >> + "PCI range %#lx\n", phys); >> + exit(1); >> + } > > I think non-pci virtio also wants to use dataplane. Any chance to move such > pci > specific things out of the main code?
Yes, using MemoryListener take care of this. Actually enabling virtio-blk-mmio or virtio-blk-ccw should work as long as those transports provide ioeventfd, irqfd, and use the vring memory layout. Stefan