DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: dev@dpdk.org
Subject: [dpdk-dev] [RFC PATCH 0/8] reduce header dependency on rte_mbuf.h
Date: Thu, 23 Apr 2015 14:03:49 +0100	[thread overview]
Message-ID: <1429794237-9498-1-git-send-email-bruce.richardson@intel.com> (raw)

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

             reply	other threads:[~2015-04-23 13:04 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-23 13:03 Bruce Richardson [this message]
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 1/8] distributor: remove header inclusion of mbuf.h Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 2/8] ethdev: remove inclusion of rte_mbuf.h Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 3/8] kni: remove header " Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 4/8] ip_frag: " Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 5/8] pipeline: " Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 6/8] virtio: " Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 7/8] table: " Bruce Richardson
2015-04-23 13:03 ` [dpdk-dev] [RFC PATCH 8/8] vhost: " Bruce Richardson
2015-05-04  8:18 ` [dpdk-dev] [RFC PATCH 0/8] reduce header dependency on rte_mbuf.h Olivier MATZ
2015-05-11 13:34   ` Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1429794237-9498-1-git-send-email-bruce.richardson@intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).