From patchwork Wed Sep 30 19:18:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ravi Kerur X-Patchwork-Id: 7339 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id C5EB78E66; Wed, 30 Sep 2015 21:18:31 +0200 (CEST) Received: from mail-pa0-f42.google.com (mail-pa0-f42.google.com [209.85.220.42]) by dpdk.org (Postfix) with ESMTP id 959848E65 for ; Wed, 30 Sep 2015 21:18:30 +0200 (CEST) Received: by padhy16 with SMTP id hy16so48941894pad.1 for ; Wed, 30 Sep 2015 12:18:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=uvepNb+0xQIeOeOwBEMLgk1SwUo2HFIDqk2hnTFbIY8=; b=AsG1U2QCoFlwRpFFGnUFimPzZDEGTUpsGRVOUyQgfpiufA9T73FI1UUK9DYTW0EkWW n0Pdy6GuBTh/lyUsKPsV/S4P9KRyR3F8zGfquqU+8OhSQpPCjsBlAmbULWfwiM8uwUGR wm5UQrZvuEx5kqq7TN6MKo7K5oYWJP6qq8ISUlZ1/FQ0yfPbIvgTkRvSygSoQ39+S6JM wCSrI1XPCUSGnTte3FmnCdgDv+jT+M+/m0YTZVugj5rz2sgvU/5J4qN3AsKcut2q4mne x3dxwLQUbyBr0DebBDi4z+mfLPFIaZqBN0uIH5CvOoTSBR0F691Rj3KWUgUUWW2jjCEN f6TA== X-Received: by 10.68.109.2 with SMTP id ho2mr6842745pbb.158.1443640709849; Wed, 30 Sep 2015 12:18:29 -0700 (PDT) Received: from user-PC.hsd1.ca.comcast.net (c-24-4-155-27.hsd1.ca.comcast.net. [24.4.155.27]) by smtp.gmail.com with ESMTPSA id jd9sm2141528pbd.53.2015.09.30.12.18.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 30 Sep 2015 12:18:29 -0700 (PDT) From: Ravi Kerur To: dev@dpdk.org Date: Wed, 30 Sep 2015 12:18:26 -0700 Message-Id: <1443640706-3984-1-git-send-email-rkerur@gmail.com> X-Mailer: git-send-email 1.9.1 Subject: [dpdk-dev] [PATCH v2] Move rte_mbuf macros to common header file X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Macros RTE_MBUF_DATA_DMA_ADDR and RTE_MBUF_DATA_DMA_ADDR_DEFAULT are defined in each PMD driver file. Move those macros into common lib/librte_mbuf/rte_mbuf.h file. PMD drivers include rte_mbuf.h file directly/indirectly hence no additionl header file inclusion is necessary. v2: > Changed both macros to inline functions in all PMD > Changed macro to rte_pktmbuf_mtod in xenvirt module v1: > Move macros into common rte_mbuf header file. Compiled for: > x86_64-native-linuxapp-clang > x86_64-native-linuxapp-gcc > i686-native-linuxapp-gcc > x86_64-native-bsdapp-gcc > x86_64-native-bsdapp-clang Tested on: > x86_64 Ubuntu 14.04, testpmd and 'make test' > FreeBSD 10.1, testpmd Signed-off-by: Ravi Kerur --- drivers/net/bnx2x/bnx2x.h | 3 --- drivers/net/cxgbe/sge.c | 3 --- drivers/net/e1000/em_rxtx.c | 6 ------ drivers/net/e1000/igb_rxtx.c | 6 ------ drivers/net/i40e/i40e_rxtx.c | 6 ------ drivers/net/ixgbe/ixgbe_rxtx.h | 6 ------ drivers/net/virtio/virtqueue.h | 3 --- drivers/net/vmxnet3/vmxnet3_rxtx.c | 6 ------ drivers/net/xenvirt/virtqueue.h | 5 +---- lib/librte_mbuf/rte_mbuf.h | 10 ++++++++++ 10 files changed, 11 insertions(+), 43 deletions(-) diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h index 867b92a..28bd83f 100644 --- a/drivers/net/bnx2x/bnx2x.h +++ b/drivers/net/bnx2x/bnx2x.h @@ -141,9 +141,6 @@ struct bnx2x_device_type { char *bnx2x_name; }; -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - ((uint64_t)((mb)->buf_physaddr + (mb)->data_off)) - #define BNX2X_PAGE_SHIFT 12 #define BNX2X_PAGE_SIZE (1 << BNX2X_PAGE_SHIFT) #define BNX2X_PAGE_MASK (~(BNX2X_PAGE_SIZE - 1)) diff --git a/drivers/net/cxgbe/sge.c b/drivers/net/cxgbe/sge.c index 6eb1244..8f4c025 100644 --- a/drivers/net/cxgbe/sge.c +++ b/drivers/net/cxgbe/sge.c @@ -1267,9 +1267,6 @@ static struct rte_mbuf *t4_pktgl_to_mbuf(const struct pkt_gl *gl) return t4_pktgl_to_mbuf_usembufs(gl); } -#define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \ - ((dma_addr_t) ((mb)->buf_physaddr + (mb)->data_off)) - /** * t4_ethrx_handler - process an ingress ethernet packet * @q: the response queue that received the packet diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index 3b8776d..c7d97c1 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -88,12 +88,6 @@ rte_rxmbuf_alloc(struct rte_mempool *mp) return (m); } -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - (uint64_t) ((mb)->buf_physaddr + (mb)->data_off) - -#define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \ - (uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM) - /** * Structure associated with each descriptor of the RX ring of a RX queue. */ diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c index 19905fd..a217cea 100644 --- a/drivers/net/e1000/igb_rxtx.c +++ b/drivers/net/e1000/igb_rxtx.c @@ -88,12 +88,6 @@ rte_rxmbuf_alloc(struct rte_mempool *mp) return (m); } -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - (uint64_t) ((mb)->buf_physaddr + (mb)->data_off) - -#define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \ - (uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM) - /** * Structure associated with each descriptor of the RX ring of a RX queue. */ diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index fd656d5..5ba6d27 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -78,12 +78,6 @@ PKT_TX_L4_MASK | \ PKT_TX_OUTER_IP_CKSUM) -#define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \ - (uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM) - -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - ((uint64_t)((mb)->buf_physaddr + (mb)->data_off)) - static const struct rte_memzone * i40e_ring_dma_zone_reserve(struct rte_eth_dev *dev, const char *ring_name, diff --git a/drivers/net/ixgbe/ixgbe_rxtx.h b/drivers/net/ixgbe/ixgbe_rxtx.h index b9eca67..dbb9f00 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx.h +++ b/drivers/net/ixgbe/ixgbe_rxtx.h @@ -40,12 +40,6 @@ #define RTE_IXGBE_DESCS_PER_LOOP 4 -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - (uint64_t) ((mb)->buf_physaddr + (mb)->data_off) - -#define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \ - (uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM) - #ifdef RTE_IXGBE_INC_VECTOR #define RTE_IXGBE_RXQ_REARM_THRESH 32 #define RTE_IXGBE_MAX_RX_BURST RTE_IXGBE_RXQ_REARM_THRESH diff --git a/drivers/net/virtio/virtqueue.h b/drivers/net/virtio/virtqueue.h index 7789411..9ea9b96 100644 --- a/drivers/net/virtio/virtqueue.h +++ b/drivers/net/virtio/virtqueue.h @@ -68,9 +68,6 @@ struct rte_mbuf; #define VIRTQUEUE_MAX_NAME_SZ 32 -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - (uint64_t) ((mb)->buf_physaddr + (mb)->data_off) - #define VTNET_SQ_RQ_QUEUE_IDX 0 #define VTNET_SQ_TQ_QUEUE_IDX 1 #define VTNET_SQ_CQ_QUEUE_IDX 2 diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c index 4de5d89..bb2648b 100644 --- a/drivers/net/vmxnet3/vmxnet3_rxtx.c +++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c @@ -77,12 +77,6 @@ #include "vmxnet3_logs.h" #include "vmxnet3_ethdev.h" -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - (uint64_t) ((mb)->buf_physaddr + (mb)->data_off) - -#define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \ - (uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM) - static const uint32_t rxprod_reg[2] = {VMXNET3_REG_RXPROD, VMXNET3_REG_RXPROD2}; static int vmxnet3_post_rx_bufs(vmxnet3_rx_queue_t*, uint8_t); diff --git a/drivers/net/xenvirt/virtqueue.h b/drivers/net/xenvirt/virtqueue.h index eff6208..c38288e 100644 --- a/drivers/net/xenvirt/virtqueue.h +++ b/drivers/net/xenvirt/virtqueue.h @@ -54,9 +54,6 @@ struct rte_mbuf; * Address translatio is between gva<->hva, * rather than gpa<->hva in virito spec. */ -#define RTE_MBUF_DATA_DMA_ADDR(mb) \ - rte_pktmbuf_mtod(mb, uint64_t) - enum { VTNET_RQ = 0, VTNET_TQ = 1, VTNET_CQ = 2 }; /** @@ -238,7 +235,7 @@ virtqueue_enqueue_xmit(struct virtqueue *txvq, struct rte_mbuf *cookie) start_dp[idx].flags = VRING_DESC_F_NEXT; start_dp[idx].addr = (uintptr_t)NULL; idx = start_dp[idx].next; - start_dp[idx].addr = RTE_MBUF_DATA_DMA_ADDR(cookie); + start_dp[idx].addr = rte_pktmbuf_mtod(cookie, uint64_t); start_dp[idx].len = cookie->data_len; start_dp[idx].flags = 0; idx = start_dp[idx].next; diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index d7c9030..52c8127 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -843,6 +843,16 @@ struct rte_mbuf { uint16_t timesync; } __rte_cache_aligned; +static inline uint64_t RTE_MBUF_DATA_DMA_ADDR(struct rte_mbuf* mb) +{ + return ((uint64_t)((mb)->buf_physaddr + (mb)->data_off)); +} + +static inline uint64_t RTE_MBUF_DATA_DMA_ADDR_DEFAULT(struct rte_mbuf *mb) +{ + return ((uint64_t)((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM)); +} + static inline uint16_t rte_pktmbuf_priv_size(struct rte_mempool *mp); /**