On Tue, May 02, 2017 at 06:25:50PM +0200, Cornelia Huck wrote: > On Sat, 29 Apr 2017 22:37:07 +1000 > Alexey Kardashevskiy 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 > > > /** > > + * 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 > > > I find "iommumr" terribly hard to read. Maybe iommu_mr is better? (Lots > of times in this patch.) > Fwiw, I tend to agree. /me wonders what an IO murmurer is. > > The s390 parts look fine. > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson