aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/dma_remapping.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/dma_remapping.h')
-rw-r--r--include/linux/dma_remapping.h38
1 files changed, 0 insertions, 38 deletions
diff --git a/include/linux/dma_remapping.h b/include/linux/dma_remapping.h
index d8521662a49..9a88f7d0262 100644
--- a/include/linux/dma_remapping.h
+++ b/include/linux/dma_remapping.h
@@ -12,44 +12,6 @@
12struct root_entry; 12struct root_entry;
13 13
14/* 14/*
15 * low 64 bits:
16 * 0: present
17 * 1: fault processing disable
18 * 2-3: translation type
19 * 12-63: address space root
20 * high 64 bits:
21 * 0-2: address width
22 * 3-6: aval
23 * 8-23: domain id
24 */
25struct context_entry {
26 u64 lo;
27 u64 hi;
28};
29#define context_present(c) ((c).lo & 1)
30#define context_fault_disable(c) (((c).lo >> 1) & 1)
31#define context_translation_type(c) (((c).lo >> 2) & 3)
32#define context_address_root(c) ((c).lo & VTD_PAGE_MASK)
33#define context_address_width(c) ((c).hi & 7)
34#define context_domain_id(c) (((c).hi >> 8) & ((1 << 16) - 1))
35
36#define context_set_present(c) do {(c).lo |= 1;} while (0)
37#define context_set_fault_enable(c) \
38 do {(c).lo &= (((u64)-1) << 2) | 1;} while (0)
39#define context_set_translation_type(c, val) \
40 do { \
41 (c).lo &= (((u64)-1) << 4) | 3; \
42 (c).lo |= ((val) & 3) << 2; \
43 } while (0)
44#define CONTEXT_TT_MULTI_LEVEL 0
45#define context_set_address_root(c, val) \
46 do {(c).lo |= (val) & VTD_PAGE_MASK; } while (0)
47#define context_set_address_width(c, val) do {(c).hi |= (val) & 7;} while (0)
48#define context_set_domain_id(c, val) \
49 do {(c).hi |= ((val) & ((1 << 16) - 1)) << 8;} while (0)
50#define context_clear_entry(c) do {(c).lo = 0; (c).hi = 0;} while (0)
51
52/*
53 * 0: readable 15 * 0: readable
54 * 1: writable 16 * 1: writable
55 * 2-6: reserved 17 * 2-6: reserved