On 4/16/2019 4:17 AM, Rosen Xu wrote:
> In many scenarios, AFU is needed searched by name, this
> function add the feature.
> 
> Signed-off-by: Rosen Xu <rosen...@intel.com>
> Signed-off-by: Andy Pei <andy....@intel.com>
> ---
>  drivers/bus/ifpga/ifpga_bus.c               | 13 +++++++++++++
>  drivers/bus/ifpga/rte_bus_ifpga.h           |  9 +++++++++
>  drivers/bus/ifpga/rte_bus_ifpga_version.map |  9 +++++++++
>  3 files changed, 31 insertions(+)
> 
> diff --git a/drivers/bus/ifpga/ifpga_bus.c b/drivers/bus/ifpga/ifpga_bus.c
> index 55d3abf..dfd6b1f 100644
> --- a/drivers/bus/ifpga/ifpga_bus.c
> +++ b/drivers/bus/ifpga/ifpga_bus.c
> @@ -73,6 +73,19 @@ void rte_ifpga_driver_unregister(struct rte_afu_driver 
> *driver)
>       return NULL;
>  }
>  
> +struct rte_afu_device *
> +rte_ifpga_find_afu_by_name(const char *name)
> +{
> +     struct rte_afu_device *afu_dev = NULL;
> +
> +     TAILQ_FOREACH(afu_dev, &ifpga_afu_dev_list, next) {
> +             if (afu_dev &&
> +                     !strcmp(afu_dev->device.name, name))
> +                     return afu_dev;
> +     }
> +     return NULL;
> +}
> +
>  static const char * const valid_args[] = {
>  #define IFPGA_ARG_NAME         "ifpga"
>       IFPGA_ARG_NAME,
> diff --git a/drivers/bus/ifpga/rte_bus_ifpga.h 
> b/drivers/bus/ifpga/rte_bus_ifpga.h
> index 820eeaa..88a6289 100644
> --- a/drivers/bus/ifpga/rte_bus_ifpga.h
> +++ b/drivers/bus/ifpga/rte_bus_ifpga.h
> @@ -120,6 +120,15 @@ struct rte_afu_driver {
>  }
>  
>  /**
> + * Find AFU by AFU name.
> + *
> + * @param name
> + *   A pointer to AFU name string.
> + */
> +struct rte_afu_device *
> +rte_ifpga_find_afu_by_name(const char *name);
> +
> +/**
>   * Register a ifpga afu device driver.
>   *
>   * @param driver
> diff --git a/drivers/bus/ifpga/rte_bus_ifpga_version.map 
> b/drivers/bus/ifpga/rte_bus_ifpga_version.map
> index a027979..51b1353 100644
> --- a/drivers/bus/ifpga/rte_bus_ifpga_version.map
> +++ b/drivers/bus/ifpga/rte_bus_ifpga_version.map
> @@ -8,3 +8,12 @@ DPDK_18.05 {
>  
>       local: *;
>  };
> +
> +DPDK_19.05 {
> +     global:
> +
> +     rte_ifpga_find_afu_by_name;
> +
> +     local: *;
> +};
> +

syntax is slightly different [1] but I can fix while merging.

[1]
DPDK_19.05 {
       global:

       rte_ifpga_find_afu_by_name;

} DPDK_18.05;

no 'local: *;' except first one, and later ones has a reference at the end of
the block 'DPDK_18.05;'

Reply via email to