 3df9d74806
			
		
	
	
		3df9d74806
		
	
	
	
	
		
			
			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. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Message-Id: <20170711035620.4232-2-aik@ozlabs.ru> Acked-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
		
			
				
	
	
		
			25 lines
		
	
	
		
			584 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			584 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef HW_MIPS_H
 | |
| #define HW_MIPS_H
 | |
| /* Definitions for mips board emulation.  */
 | |
| 
 | |
| /* Kernels can be configured with 64KB pages */
 | |
| #define INITRD_PAGE_MASK (~((1 << 16) - 1))
 | |
| 
 | |
| #include "exec/memory.h"
 | |
| #include "hw/irq.h"
 | |
| 
 | |
| /* gt64xxx.c */
 | |
| PCIBus *gt64120_register(qemu_irq *pic);
 | |
| 
 | |
| /* bonito.c */
 | |
| PCIBus *bonito_init(qemu_irq *pic);
 | |
| 
 | |
| /* rc4030.c */
 | |
| typedef struct rc4030DMAState *rc4030_dma;
 | |
| void rc4030_dma_read(void *dma, uint8_t *buf, int len);
 | |
| void rc4030_dma_write(void *dma, uint8_t *buf, int len);
 | |
| 
 | |
| DeviceState *rc4030_init(rc4030_dma **dmas, IOMMUMemoryRegion **dma_mr);
 | |
| 
 | |
| #endif
 |