[dpdk-dev] [PATCH v4 02/15] mem: introduce IOVA type

Thomas Monjalon thomas at monjalon.net
Mon Nov 6 02:41:28 CET 2017


The IO virtual addresses may be used instead of physical addresses.
As IOVA is more generic, it should be used in most places instead
of physical address wording.

Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
---
 lib/librte_eal/common/include/rte_memory.h | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/include/rte_memory.h b/lib/librte_eal/common/include/rte_memory.h
index 5a3a956e3..f7eed9ab6 100644
--- a/lib/librte_eal/common/include/rte_memory.h
+++ b/lib/librte_eal/common/include/rte_memory.h
@@ -92,8 +92,16 @@ enum rte_page_sizes {
  */
 #define __rte_cache_min_aligned __rte_aligned(RTE_CACHE_LINE_MIN_SIZE)
 
-typedef uint64_t phys_addr_t; /**< Physical address definition. */
+typedef uint64_t phys_addr_t; /**< Physical address. */
 #define RTE_BAD_PHYS_ADDR ((phys_addr_t)-1)
+/**
+ * IO virtual address type.
+ * When the physical addressing mode is in use,
+ * the translation from a virtual address to a physical address
+ * is a direct mapping, i.e. the same value.
+ */
+typedef uint64_t rte_iova_t;
+#define RTE_BAD_IOVA ((rte_iova_t)-1)
 
 /**
  * Physical memory segment descriptor.
-- 
2.14.2



More information about the dev mailing list