xref: /qemu/include/accel/tcg/iommu.h (revision 7cef6d686309e2792186504ae17cf4f3eb57ef68)
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