On 03/05/17 02:25, Cornelia Huck wrote: > On Sat, 29 Apr 2017 22:37:07 +1000 > Alexey Kardashevskiy <a...@ozlabs.ru> wrote: > >> This defines new QOM object - IOMMUMemoryRegion - with MemoryRegion >> as a parent. >> >> This moves IOMMU-related fields from MR to IOMMU MR. However to avoid >> dymanic QOM casting in fast path (address_space_translate, etc), >> this adds an @is_iommu boolean flag to MR and provides new helper to >> do simple cast to IOMMU MR - memory_region_get_iommu. The flag >> is set in the instance init callback. This defines >> memory_region_is_iommu as memory_region_get_iommu()!=NULL. >> >> This switches MemoryRegion to IOMMUMemoryRegion in most places except >> the ones where MemoryRegion may be an alias. >> >> This defines memory_region_init_iommu_type() to allow creating >> IOMMUMemoryRegion subclasses. In order to support custom QOM type, >> this splits memory_region_init() to object_initialize() + >> memory_region_do_init. >> >> Signed-off-by: Alexey Kardashevskiy <a...@ozlabs.ru> > >> /** >> + * memory_region_init_iommu_type: Initialize a memory region of a custom >> type >> + * that translates addresses >> + * >> + * An IOMMU region translates addresses and forwards accesses to a target >> + * memory region. >> + * >> + * @typename: QOM class name >> + * @iommumr: the #IOMMUMemoryRegion to be initialized > > <bikeshed> > I find "iommumr" terribly hard to read. Maybe iommu_mr is better? (Lots > of times in this patch.) > </bikeshed>
Terribly? Really? :) Seriously, since linux uses underscores in typenames, I kind of developed resistance to underscores in variable names which look like typenames (even though c allows using same token for a type and a variable). May be just "iommu"? I need one more vote for "iommu" vs. "iommumr" vs. "iommu_mr" to respin v6 :) > > The s390 parts look fine. > -- Alexey