On Thu, Oct 11, 2012 at 4:31 PM, Avi Kivity <a...@redhat.com> wrote:
> On 10/11/2012 05:38 AM, liu ping fan wrote:
>>>
>>> +void address_space_init_dispatch(AddressSpace *as)
>>> +{
>>> +    AddressSpaceDispatch *d = g_new(AddressSpaceDispatch, 1);
>>> +
>>> +    d->phys_map  = (PhysPageEntry) { .ptr = PHYS_MAP_NODE_NIL, .is_leaf = 
>>> 0 };
>>> +    d->listener = (MemoryListener) {
>>> +        .begin = mem_begin,
>>> +        .region_add = mem_add,
>>
>> mem_add() has the fixed mapping relationship between addr(in
>> system_memory) and mr. If we want to fold lookup logic of iommu into
>> radix-tree, it will need external behavior. So I think
>> address_space_init_dispatch(as) should be
>> address_space_init_dispatch(as, listener).
>
> This is per address space, it's not tied to system_memory().
>
Then, where do we implement iommu translation logic? Above the radix-tree?
>
> --
> error compiling committee.c: too many arguments to function

Reply via email to