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

Reply via email to