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'?