On 9/9/2017 12:21 PM, Shreyansh Jain wrote:
> From: Hemant Agrawal <hemant.agra...@nxp.com>
> 
> Signed-off-by: Hemant Agrawal <hemant.agra...@nxp.com>

<...>

> +static int
> +dpaa_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstat *xstats,
> +                 unsigned int n)
> +{
> +     struct dpaa_if *dpaa_intf = dev->data->dev_private;
> +     unsigned int i = 0, num = RTE_DIM(dpaa_xstats_strings);
> +     uint64_t values[sizeof(struct dpaa_if_stats) / 8];
> +
> +     if (xstats == NULL)
> +             return 0;

This is a little not clear from API definition, but I guess when xstats
is NULL, it should return num of available stats, "num" for this case. I
guess there are PMDs implements both, can you please double check?

> +
> +     if (n < num)
> +             return num;
> +
> +     fman_if_stats_get_all(dpaa_intf->fif, values,
> +                           sizeof(struct dpaa_if_stats) / 8);
> +
> +     for (i = 0; i < num; i++) {
> +             xstats[i].id = i;
> +             xstats[i].value = values[dpaa_xstats_strings[i].offset / 8];
> +     }
> +     return i;
> +}

<...>

Reply via email to