From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <rkerur@gmail.com>
Received: from mail-ob0-f180.google.com (mail-ob0-f180.google.com
 [209.85.214.180]) by dpdk.org (Postfix) with ESMTP id E20827E23
 for <dev@dpdk.org>; Sat, 26 Sep 2015 04:46:47 +0200 (CEST)
Received: by obbda8 with SMTP id da8so95209844obb.1
 for <dev@dpdk.org>; Fri, 25 Sep 2015 19:46:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :cc:content-type;
 bh=twhLR2w0b+JT6eMRyH2UFqM1QhPBUYCwsSNIlwTha7Y=;
 b=oBnjPEH+q8mJAy/rZLmNTzEwAsfFkN+cMv1Y9D6dAV8c8Pbk5WoPLBu5cC1XqPjXvB
 2I+sDQIEwhSvTSAXR9egHQRsiD6amUMnOGVz9vaRpIjlJcdAKbyH6iCzfynkcXsyor45
 qJKZuEddfYoN05BglAH3nWoAw3VE5Nenlq1s/iHRNTJ0DLGQes7a2FwU1De5MDmOG7e9
 J+6U9i1BtwK7JqkxooAlRWDCKdhrIqs1jkHL/ONLmgXPQxcFTC1xwc0Wp8LLK9gZD0pY
 Kwp9pRo0dt5zOlrelRzV/d5khlxkPETijgl6BOxI/FpXIw3IKQ7gh7aH+IROWAljvrjp
 XdKw==
MIME-Version: 1.0
X-Received: by 10.60.179.170 with SMTP id dh10mr4720366oec.86.1443235607247;
 Fri, 25 Sep 2015 19:46:47 -0700 (PDT)
Received: by 10.202.65.197 with HTTP; Fri, 25 Sep 2015 19:46:47 -0700 (PDT)
In-Reply-To: <20150924162537.3b20ea3a@urahara>
References: <1443134987-24700-1-git-send-email-rkerur@gmail.com>
 <1443135041-24757-1-git-send-email-rkerur@gmail.com>
 <20150924162537.3b20ea3a@urahara>
Date: Fri, 25 Sep 2015 19:46:47 -0700
Message-ID: <CAFb4SLDryzmfpWCXQG93mXgS2tYi9tpeQCONkq=vB7M_aF63TA@mail.gmail.com>
From: Ravi Kerur <rkerur@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>,
 Olivier Matz <olivier.matz@6wind.com>
Content-Type: text/plain; charset=UTF-8
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v1] 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 <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Sat, 26 Sep 2015 02:46:48 -0000

On Thu, Sep 24, 2015 at 4:25 PM, Stephen Hemminger <
stephen@networkplumber.org> wrote:

> On Thu, 24 Sep 2015 15:50:41 -0700
> Ravi Kerur <rkerur@gmail.com> wrote:
>
> > 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. All PMD drivers include rte_mbuf.h
> > file directly/indirectly hence no additionl header file inclusion
> > is necessary.
> >
> > 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 <rkerur@gmail.com>
>
> I like the idea, should have been done long ago.
>
> My only gripe is that you should do this as inline functions
> rather than macros. Inline functions are type safe, macros are not.
>

Agreed. However, I see another variation of the macro, users are primarily
from "app" directory and lone user from drivers/net/xenvirt/virtqueue.h

#define RTE_MBUF_DATA_DMA_ADDR(mb) \
        rte_pktmbuf_mtod(mb, uint64_t)

#define rte_pktmbuf_mtod(m, t) rte_pktmbuf_mtod_offset(m, t, 0)

#define rte_pktmbuf_mtod_offset(m, t, o)        \
        ((t)((char *)(m)->buf_addr + (m)->data_off + (o)))

Let me know should I still go ahead and do inline variation for drivers or
use above macro?