From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 8427C58EF for ; Thu, 23 Apr 2015 15:04:00 +0200 (CEST) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP; 23 Apr 2015 06:03:59 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,631,1422950400"; d="scan'208";a="714280362" Received: from irvmail001.ir.intel.com ([163.33.26.43]) by fmsmga002.fm.intel.com with ESMTP; 23 Apr 2015 06:03:58 -0700 Received: from sivswdev01.ir.intel.com (sivswdev01.ir.intel.com [10.237.217.45]) by irvmail001.ir.intel.com (8.14.3/8.13.6/MailSET/Hub) with ESMTP id t3ND3v0C025629; Thu, 23 Apr 2015 14:03:57 +0100 Received: from sivswdev01.ir.intel.com (localhost [127.0.0.1]) by sivswdev01.ir.intel.com with ESMTP id t3ND3vCG009534; Thu, 23 Apr 2015 14:03:57 +0100 Received: (from bricha3@localhost) by sivswdev01.ir.intel.com with id t3ND3vnX009530; Thu, 23 Apr 2015 14:03:57 +0100 From: Bruce Richardson To: dev@dpdk.org Date: Thu, 23 Apr 2015 14:03:49 +0100 Message-Id: <1429794237-9498-1-git-send-email-bruce.richardson@intel.com> X-Mailer: git-send-email 1.7.4.1 Subject: [dpdk-dev] [RFC PATCH 0/8] reduce header dependency on rte_mbuf.h 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: Thu, 23 Apr 2015 13:04:01 -0000 A large number of our header files and libraries are dependent on one another, which can lead to problems with circular dependencies if trying to tie some of those libraries together, e.g. when prototyping with pktdev, or other schemes to get a common API for ethdev/rings/KNI. :-) One small way to reduce issues when doing this is to eliminate #includes when they are not needed. While most includes in our headers are necessary, one common pattern seen is where a library just takes mbufs as part of it's API, but does not de-reference those in the header file. In cases like this, it's not necessary to include the whole mbuf header file just to allow pointers to mbuf structures - a forward declaration of "struct rte_mbuf" will do. Including the mbuf header file, also triggers inclusion of the mempool headers which causes the inclusion of the ring headers amongst others. Therefore, I propose changing the header files for our libraries to just use the forward declaration instead of the full header inclusion where possible. Bruce Richardson (8): distributor: remove header inclusion of mbuf.h ethdev: remove inclusion of rte_mbuf.h kni: remove header inclusion of rte_mbuf.h ip_frag: remove header inclusion of rte_mbuf.h pipeline: remove header inclusion of rte_mbuf.h virtio: remove header inclusion of rte_mbuf.h table: remove header inclusion of rte_mbuf.h vhost: remove header inclusion of rte_mbuf.h app/test/test_distributor.c | 2 ++ app/test/test_distributor_perf.c | 3 +++ lib/librte_distributor/rte_distributor.h | 3 +-- lib/librte_ether/rte_ethdev.h | 3 ++- lib/librte_ip_frag/rte_ip_frag.h | 3 ++- lib/librte_kni/rte_kni.h | 2 +- lib/librte_pipeline/rte_pipeline.h | 3 ++- lib/librte_pmd_virtio/virtqueue.h | 3 ++- lib/librte_pmd_xenvirt/virtqueue.h | 3 ++- lib/librte_table/rte_table.h | 3 ++- lib/librte_vhost/rte_virtio_net.h | 3 ++- 11 files changed, 21 insertions(+), 10 deletions(-) -- 2.1.0