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

Ferruh Yigit ferruh.yigit at intel.com
Mon Sep 9 11:59:50 CEST 2019


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.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.
> 

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


More information about the dev mailing list