}
/* If not, Fallback to full memseg list searching */
- return rte_mem_iova2virt(paddr);
+ va = rte_mem_iova2virt(paddr);
+
+ dpaax_iova_table_update(paddr, va, RTE_CACHE_LINE_SIZE);
+
+ return va;
+}
+
+static inline rte_iova_t
+rte_dpaa_mem_vtop(void *vaddr)
+{
+ const struct rte_memseg *ms;
+
+ ms = rte_mem_virt2memseg(vaddr, NULL);
+ if (ms)
+ return ms->iova + RTE_PTR_DIFF(vaddr, ms->addr);
+
+ return (size_t)NULL;
}
/**
* A pointer to a rte_dpaa_driver structure describing the driver
* to be registered.
*/
+__rte_internal
void rte_dpaa_driver_register(struct rte_dpaa_driver *driver);
/**
* A pointer to a rte_dpaa_driver structure describing the driver
* to be unregistered.
*/
+__rte_internal
void rte_dpaa_driver_unregister(struct rte_dpaa_driver *driver);
/**
* @return
* 0 in case of success, error otherwise
*/
+__rte_internal
int rte_dpaa_portal_init(void *arg);
+__rte_internal
int rte_dpaa_portal_fq_init(void *arg, struct qman_fq *fq);
+__rte_internal
int rte_dpaa_portal_fq_close(struct qman_fq *fq);
/**