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; > +} <...>