Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4568 | Serge | 1 | #ifndef _DMA_REMAPPING_H |
2 | #define _DMA_REMAPPING_H |
||
3 | |||
4 | /* |
||
5 | * VT-d hardware uses 4KiB page size regardless of host page size. |
||
6 | */ |
||
7 | #define VTD_PAGE_SHIFT (12) |
||
8 | #define VTD_PAGE_SIZE (1UL << VTD_PAGE_SHIFT) |
||
9 | #define VTD_PAGE_MASK (((u64)-1) << VTD_PAGE_SHIFT) |
||
10 | #define VTD_PAGE_ALIGN(addr) (((addr) + VTD_PAGE_SIZE - 1) & VTD_PAGE_MASK) |
||
11 | |||
12 | #define VTD_STRIDE_SHIFT (9) |
||
13 | #define VTD_STRIDE_MASK (((u64)-1) << VTD_STRIDE_SHIFT) |
||
14 | |||
15 | #define DMA_PTE_READ (1) |
||
16 | #define DMA_PTE_WRITE (2) |
||
17 | #define DMA_PTE_LARGE_PAGE (1 << 7) |
||
18 | #define DMA_PTE_SNP (1 << 11) |
||
19 | |||
20 | #define CONTEXT_TT_MULTI_LEVEL 0 |
||
21 | #define CONTEXT_TT_DEV_IOTLB 1 |
||
22 | #define CONTEXT_TT_PASS_THROUGH 2 |
||
23 | |||
24 | struct intel_iommu; |
||
25 | struct dmar_domain; |
||
26 | struct root_entry; |
||
27 | |||
28 | |||
29 | #ifdef CONFIG_INTEL_IOMMU |
||
30 | extern int iommu_calculate_agaw(struct intel_iommu *iommu); |
||
31 | extern int iommu_calculate_max_sagaw(struct intel_iommu *iommu); |
||
32 | extern int dmar_disabled; |
||
33 | extern int intel_iommu_enabled; |
||
34 | #else |
||
35 | static inline int iommu_calculate_agaw(struct intel_iommu *iommu) |
||
36 | { |
||
37 | return 0; |
||
38 | } |
||
39 | static inline int iommu_calculate_max_sagaw(struct intel_iommu *iommu) |
||
40 | { |
||
41 | return 0; |
||
42 | } |
||
43 | #define dmar_disabled (1) |
||
44 | #define intel_iommu_enabled (0) |
||
45 | #endif |
||
46 | |||
47 | |||
48 | #endif><>><>><>><>><> |