[dpdk-dev] [RFC 19.11 v2 1/3] ethdev: hide key ethdev structures from public API

Zapolski, MarcinX A marcinx.a.zapolski at intel.com
Mon Sep 9 10:07:15 CEST 2019


> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Friday, September 6, 2019 4:38 PM
> To: Zapolski, MarcinX A <marcinx.a.zapolski at intel.com>; dev at dpdk.org
> Subject: Re: [dpdk-dev] [RFC 19.11 v2 1/3] ethdev: hide key ethdev
> structures from public API
> 
> On 9/6/2019 2:18 PM, Marcin Zapolski wrote:
> > Split rte_eth_dev structure to two parts: head that is available for
> > user applications, and rest which is DPDK internal.
> > Make an array of pointers to rte_eth_dev structures available for user
> > applications.
> >
> > Signed-off-by: Marcin Zapolski <marcinx.a.zapolski at intel.com>
> 
> <...>
> 
> > diff --git a/lib/librte_bitratestats/rte_bitrate.c
> > b/lib/librte_bitratestats/rte_bitrate.c
> > index 639e47547..82d469514 100644
> > --- a/lib/librte_bitratestats/rte_bitrate.c
> > +++ b/lib/librte_bitratestats/rte_bitrate.c
> > @@ -3,7 +3,7 @@
> >   */
> >
> >  #include <rte_common.h>
> > -#include <rte_ethdev.h>
> > +#include <rte_ethdev_driver.h>
> 
> This is in the library, not sure if libraries should include the header file for the
> drivers, can you please explain why this change is needed?
> 
It is needed to make rte_eth_dev structure available. But yes, I agree that it will be more appropriate to include rte_ethdev.h and rte_ethdev_core.h separately. I probably wanted less includes, silly me.
> <...>
> 
> > @@ -6,6 +6,7 @@
> >  #define _RTE_ETHDEV_PROFILE_H_
> >
> >  #include "rte_ethdev.h"
> > +#include "rte_ethdev_core.h"
> >
> >  /**
> >   * Initialization of the Ethernet device profiling.
> > diff --git a/lib/librte_ethdev/rte_ethdev.c
> > b/lib/librte_ethdev/rte_ethdev.c index 17d183e1f..5c6cc640a 100644
> > --- a/lib/librte_ethdev/rte_ethdev.c
> > +++ b/lib/librte_ethdev/rte_ethdev.c
> > @@ -40,6 +40,7 @@
> >
> >  #include "rte_ether.h"
> >  #include "rte_ethdev.h"
> > +#include "rte_ethdev_core.h"
> >  #include "rte_ethdev_driver.h"
> >  #include "ethdev_profile.h"
> >  #include "ethdev_private.h"
> 
> I was hoping "rte_ethdev_core.h" can be removed completely by
> distributing its content to "ethdev_private.h", "rte_ethdev_driver.h" and
> perhaps even to "rte_ethdev.h".
> 
> Can you please explain what prevents removing "rte_ethdev_core.h"?
I could rename it to rte_ethdev_private. There is just rte_eth_dev and rte_eth_dev_data left in it.



More information about the dev mailing list