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