[PATCH 1/3] ethdev: fix missing cast for C++ compatibility

Ferruh Yigit ferruh.yigit at intel.com
Wed Feb 16 11:32:43 CET 2022


On 2/15/2022 5:30 PM, Bruce Richardson wrote:
> C++ does not allow implicit conversion to/from void*, so we need an
> explicit cast to allow the driver sdk header to be included from C++
> code.
> 

I remember patches removing explicit "void *" cast, in the past,

to document, is the rule as following:
- public and sdk headers should support c++, hence these files
   must have explicit "void *" cast
- .c files should NOT have explicit "void *" cast

> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
>   lib/ethdev/ethdev_pci.h | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/ethdev/ethdev_pci.h b/lib/ethdev/ethdev_pci.h
> index 71aa4b2e98..d2bc3fe5e0 100644
> --- a/lib/ethdev/ethdev_pci.h
> +++ b/lib/ethdev/ethdev_pci.h
> @@ -46,8 +46,9 @@ rte_eth_copy_pci_info(struct rte_eth_dev *eth_dev,
>   }
>   
>   static inline int
> -eth_dev_pci_specific_init(struct rte_eth_dev *eth_dev, void *bus_device) {
> -	struct rte_pci_device *pci_dev = bus_device;
> +eth_dev_pci_specific_init(struct rte_eth_dev *eth_dev, void *bus_device)
> +{
> +	struct rte_pci_device *pci_dev = (struct rte_pci_device *)bus_device;
>   
>   	if (!pci_dev)
>   		return -ENODEV;



More information about the dev mailing list