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(). -- error compiling committee.c: too many arguments to function