On 16 April 2013 00:19, Scott Wood <address@hidden> wrote:
> This is useful for when a user of the memory region API needs to
> communicate the absolute bus address to something outside QEMU
> (in particular, KVM).
>
> Signed-off-by: Scott Wood <address@hidden>
> ---
> TODO: Use add/del memory listeners later in the patchset, which
would
> eliminate the need for this patch.
Yes, please do.
> +/* memory_region_to_address: Find the full address of the start of
the
> + * given #MemoryRegion, ignoring aliases. There is no
guarantee
> + * that the #MemoryRegion is actually visible at this
address, if
> + * there are overlapping regions.
> + *
> + * @mr: #MemoryRegion being queried
> + * @asp: if non-NULL, returns the #AddressSpace @mr is mapped in,
if any
> + */
> +hwaddr memory_region_to_address(MemoryRegion *mr, AddressSpace
**asp);
A MemoryRegion can appear in more than one AddressSpace (or none at
all),
so I don't think this is a very clearly defined API to put in the
memory API itself. (It's ok to make that kind of assumption as a user
of the memory APIs for particular cases, eg in how a memory listener
callback function behaves. But we shouldn't be baking those
assumptions
into new API functions.)