Il 15/11/2012 16:19, Stefan Hajnoczi ha scritto: > +/* 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); > + } > + return vring->phys_mem_zero_host_ptr + phys; > +} > +
Hmm, perhaps *this* is not quite ready. :) What we want is lockless address_space_map. We're not far from it, but not there either. Can you add, at least for now, a weak function that does a 1:1 mapping, and override it with the above code in hw/pc.c? The prototype then would be static inline void *dataplane_phys_to_host(void *base, hwaddr phys) { } or something like that. Paolo