1*f12b7177SPhilippe Mathieu-Daudé /* 2*f12b7177SPhilippe Mathieu-Daudé * TCG IOMMU translations. 3*f12b7177SPhilippe Mathieu-Daudé * 4*f12b7177SPhilippe Mathieu-Daudé * Copyright (c) 2003 Fabrice Bellard 5*f12b7177SPhilippe Mathieu-Daudé * SPDX-License-Identifier: LGPL-2.1-or-later 6*f12b7177SPhilippe Mathieu-Daudé */ 7*f12b7177SPhilippe Mathieu-Daudé #ifndef ACCEL_TCG_IOMMU_H 8*f12b7177SPhilippe Mathieu-Daudé #define ACCEL_TCG_IOMMU_H 9*f12b7177SPhilippe Mathieu-Daudé 10*f12b7177SPhilippe Mathieu-Daudé #ifdef CONFIG_USER_ONLY 11*f12b7177SPhilippe Mathieu-Daudé #error Cannot include accel/tcg/iommu.h from user emulation 12*f12b7177SPhilippe Mathieu-Daudé #endif 13*f12b7177SPhilippe Mathieu-Daudé 14*f12b7177SPhilippe Mathieu-Daudé #include "exec/hwaddr.h" 15*f12b7177SPhilippe Mathieu-Daudé #include "exec/memattrs.h" 16*f12b7177SPhilippe Mathieu-Daudé 17*f12b7177SPhilippe Mathieu-Daudé /** 18*f12b7177SPhilippe Mathieu-Daudé * iotlb_to_section: 19*f12b7177SPhilippe Mathieu-Daudé * @cpu: CPU performing the access 20*f12b7177SPhilippe Mathieu-Daudé * @index: TCG CPU IOTLB entry 21*f12b7177SPhilippe Mathieu-Daudé * 22*f12b7177SPhilippe Mathieu-Daudé * Given a TCG CPU IOTLB entry, return the MemoryRegionSection that 23*f12b7177SPhilippe Mathieu-Daudé * it refers to. @index will have been initially created and returned 24*f12b7177SPhilippe Mathieu-Daudé * by memory_region_section_get_iotlb(). 25*f12b7177SPhilippe Mathieu-Daudé */ 26*f12b7177SPhilippe Mathieu-Daudé MemoryRegionSection *iotlb_to_section(CPUState *cpu, 27*f12b7177SPhilippe Mathieu-Daudé hwaddr index, MemTxAttrs attrs); 28*f12b7177SPhilippe Mathieu-Daudé 29*f12b7177SPhilippe Mathieu-Daudé MemoryRegionSection *address_space_translate_for_iotlb(CPUState *cpu, 30*f12b7177SPhilippe Mathieu-Daudé int asidx, 31*f12b7177SPhilippe Mathieu-Daudé hwaddr addr, 32*f12b7177SPhilippe Mathieu-Daudé hwaddr *xlat, 33*f12b7177SPhilippe Mathieu-Daudé hwaddr *plen, 34*f12b7177SPhilippe Mathieu-Daudé MemTxAttrs attrs, 35*f12b7177SPhilippe Mathieu-Daudé int *prot); 36*f12b7177SPhilippe Mathieu-Daudé 37*f12b7177SPhilippe Mathieu-Daudé hwaddr memory_region_section_get_iotlb(CPUState *cpu, 38*f12b7177SPhilippe Mathieu-Daudé MemoryRegionSection *section); 39*f12b7177SPhilippe Mathieu-Daudé 40*f12b7177SPhilippe Mathieu-Daudé #endif 41*f12b7177SPhilippe Mathieu-Daudé 42