> -----Original Message----- > From: Yigit, Ferruh > Sent: Monday, September 9, 2019 12:00 PM > To: Zapolski, MarcinX A <marcinx.a.zapol...@intel.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] [RFC 19.11 v2 1/3] ethdev: hide key ethdev > structures from public API > > On 9/9/2019 9:07 AM, Zapolski, MarcinX A wrote: > >> -----Original Message----- > >> From: Yigit, Ferruh > >> Sent: Friday, September 6, 2019 4:38 PM > >> To: Zapolski, MarcinX A <marcinx.a.zapol...@intel.com>; dev@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.zapol...@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. > > > > I think drivers access to both 'rte_eth_dev' and 'rte_eth_dev_data' so can't > move them to 'ethdev_private.h' why not move it to 'rte_ethdev_driver.h'?
Because the libraries use them as well.