From 0781e8a7ac52863e970ec84abd3e1f95720a5105 Mon Sep 17 00:00:00 2001 From: Declan Doherty Date: Wed, 25 Nov 2015 13:25:11 +0000 Subject: [PATCH] mbuf: get physical address of data Signed-off-by: Declan Doherty Acked-by: Sergio Gonzalez Monroy --- lib/librte_mbuf/rte_mbuf.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 08717a26be..def2e33571 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -1624,6 +1624,27 @@ static inline struct rte_mbuf *rte_pktmbuf_lastseg(struct rte_mbuf *m) */ #define rte_pktmbuf_mtod(m, t) rte_pktmbuf_mtod_offset(m, t, 0) +/** + * A macro that returns the physical address that points to an offset of the + * start of the data in the mbuf + * + * @param m + * The packet mbuf. + * @param o + * The offset into the data to calculate address from. + */ +#define rte_pktmbuf_mtophys_offset(m, o) \ + (phys_addr_t)((m)->buf_physaddr + (m)->data_off + (o)) + +/** + * A macro that returns the physical address that points to the start of the + * data in the mbuf + * + * @param m + * The packet mbuf. + */ +#define rte_pktmbuf_mtophys(m) rte_pktmbuf_mtophys_offset(m, 0) + /** * A macro that returns the length of the packet. * -- 2.20.1