From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f54.google.com (mail-wm0-f54.google.com [74.125.82.54]) by dpdk.org (Postfix) with ESMTP id DADE46CD4 for ; Fri, 9 Sep 2016 10:55:43 +0200 (CEST) Received: by mail-wm0-f54.google.com with SMTP id w12so20510427wmf.0 for ; Fri, 09 Sep 2016 01:55:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Ypipf8m/nJ9GEl/XoBRPfvvFAndq06GMByvNiruN4kM=; b=IqCt/RO/KKqGwKtsXnX0bISBFaOus9rd+hIK8lSqYXjWLhT9wDr31pEzP7gAQqIerT Vp4FgzjDj+mXt/ZWXtCvF4g9wzTJCwnkcBtjw5bu3e72Bbb8nu4sBpB0B1nwU/qxJBp7 8TguC/PU7AkoMQUX9a9+DP5vXUkqtvfn4PypvPpnY+NRJjB3oL5BAX36uWfT+jpqGso8 FIf9utXa2UmU7xLxn8OqzIsS6CbMvqNFtImjgmpHXJFz+SLLVif837Z89DDmnQZKwAz4 1GoC/+dsZi0YYG5xGgitrDKZ7LfQGbTio64PBMlVC2uPxusrs/PF4Jsyc/c+uR6ymRTp xs9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:references:mime-version:content-disposition :content-transfer-encoding:in-reply-to; bh=Ypipf8m/nJ9GEl/XoBRPfvvFAndq06GMByvNiruN4kM=; b=dnArWS+tIlcBv3pjX4ZeJY+1yCuwX11sDuVatwhMUtmiwQq/9YrctIyTeo4kZo48bc OdbgbJomh0QFq0O1mTA9QD7j4pGBkfHsv4Pa7an2QjP0G399//x12vDbPlrsCPz/H6PX IhPOHYw6u2M7llSZkxeEyXogg64Mk8mBtadDf1bZfeLXfiM0fLQ0h0PYVQAF78Q4Hc9B D4wZznDS6pYd1/9zS4vRP9VYBeagGJ7Dm0kG4L3UfL730H8mGNQWQKsjx1qw1kGBNnQS CMLi0j7W0nw5vrCNStpHjnjMKLXnSgsyhMXXeux3Vi8ciFl90hYxaGG/ecMV+WThDZcP 9/VQ== X-Gm-Message-State: AE9vXwPcnd2Ev8hyz9ScqYiPHmN1/zxaTd219bcmal74EAlmgka+PejU8T2mNYgg4jxgV3DQ X-Received: by 10.28.196.14 with SMTP id u14mr1701277wmf.17.1473411343637; Fri, 09 Sep 2016 01:55:43 -0700 (PDT) Received: from 6wind.com (guy78-3-82-239-227-177.fbx.proxad.net. [82.239.227.177]) by smtp.gmail.com with ESMTPSA id ub8sm2276414wjc.39.2016.09.09.01.55.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 09 Sep 2016 01:55:42 -0700 (PDT) Date: Fri, 9 Sep 2016 10:55:37 +0200 From: Adrien Mazarguil To: Shreyansh Jain Cc: Ferruh Yigit , dev@dpdk.org, hemant.agrawal@nxp.com, Jan Viktorin Message-ID: <20160909085537.GM17252@6wind.com> Mail-Followup-To: Shreyansh Jain , Ferruh Yigit , dev@dpdk.org, hemant.agrawal@nxp.com, Jan Viktorin References: <1466510566-9240-1-git-send-email-shreyansh.jain@nxp.com> <1473257297-7221-1-git-send-email-shreyansh.jain@nxp.com> <1473257297-7221-2-git-send-email-shreyansh.jain@nxp.com> <37d34b1e-732e-d31e-a24d-84d4839fe0c5@intel.com> <858e0541-8f83-ae7c-d529-c06b3029cc54@nxp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <858e0541-8f83-ae7c-d529-c06b3029cc54@nxp.com> Subject: Re: [dpdk-dev] [PATCH v9 01/25] eal: define macro container_of 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: , X-List-Received-Date: Fri, 09 Sep 2016 08:55:44 -0000 On Fri, Sep 09, 2016 at 09:49:06AM +0530, Shreyansh Jain wrote: > Hi Ferruh, > > On Thursday 08 September 2016 07:46 PM, Ferruh Yigit wrote: > >On 9/7/2016 3:07 PM, Shreyansh Jain wrote: > >>Signed-off-by: Jan Viktorin > >>Signed-off-by: Shreyansh Jain > >>--- > >> lib/librte_eal/common/include/rte_common.h | 21 +++++++++++++++++++++ > >> 1 file changed, 21 insertions(+) > >> > >>diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h > >>index 332f2a4..c5d94f3 100644 > >>--- a/lib/librte_eal/common/include/rte_common.h > >>+++ b/lib/librte_eal/common/include/rte_common.h > >>@@ -322,6 +322,27 @@ rte_bsf32(uint32_t v) > >> #define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER) > >> #endif > >> > >>+/** > >>+ * Return pointer to the wrapping struct instance. > >>+ * Example: > >>+ * > >>+ * struct wrapper { > >>+ * ... > >>+ * struct child c; > >>+ * ... > >>+ * }; > >>+ * > >>+ * struct child *x = obtain(...); > >>+ * struct wrapper *w = container_of(x, struct wrapper, c); > >>+ * > >>+ * Some implementation already have this defined, thus, conditional > >>+ * declaration. > >>+ */ > >>+#ifndef container_of > >>+#define container_of(p, type, member) \ > >>+ ((type *) (((char *) (p)) - offsetof(type, member))) > >>+#endif > >>+ > >> #define _RTE_STR(x) #x > >> /** Take a macro value and get a string version of it */ > >> #define RTE_STR(x) _RTE_STR(x) > >> > > > >Some mlx5 files includes dpdk version of container_of first, they > >produce following warning: > > > >In file included from .../dpdk/build/include/rte_mbuf.h:57:0, > > from .../dpdk/build/include/rte_ether.h:52, > > from .../dpdk/drivers/net/mlx5/mlx5_trigger.c:38: > >/usr/include/infiniband/verbs.h: In function ‘verbs_get_device’: > >..../dpdk/build/include/rte_common.h:343:14: warning: cast discards > >‘const’ qualifier from pointer target type [-Wcast-qual] > > ((type *) (((char *) (p)) - offsetof(type, member))) > > > >The verbs.h version of container_of is same with dpdk one, I am not able > >to find why one gives warning but other not. > > Thanks for highlighting. I am setting up my environment and will have a > look. This warning is a known issue in the Verbs header that will be addressed eventually. It occurs even without Shreyansh's patch (more likely when CONFIG_RTE_LIBRTE_MLX4_DEBUG and/or CONFIG_RTE_LIBRTE_MLX5_DEBUG are enabled). Your container_of() macro is fine, no need to spend time on this. -- Adrien Mazarguil 6WIND