I tried to do that but there is some issue with the inlining. I think this is due to inline keyword being processed (also) as static by the compiler.
On Wed, Nov 25, 2015 at 4:29 PM, Stephen Hemminger < stephen at networkplumber.org> wrote: > On Wed, 25 Nov 2015 16:19:51 +0000 > "Alejandro.Lucero" <alejandro.lucero at netronome.com> wrote: > > > +/* > > + * Atomically reads link status information from global structure > rte_eth_dev. > > + * > > + * @param dev > > + * - Pointer to the structure rte_eth_dev to read from. > > + * - Pointer to the buffer to be saved with the link status. > > + * > > + * @return > > + * - On success, zero. > > + * - On failure, negative value. > > + */ > > +static inline int > > +nfp_net_dev_atomic_read_link_status(struct rte_eth_dev *dev, > > + struct rte_eth_link *link) > > +{ > > + struct rte_eth_link *dst = link; > > + struct rte_eth_link *src = &dev->data->dev_link; > > + > > + if (rte_atomic64_cmpset((uint64_t *)dst, *(uint64_t *)dst, > > + *(uint64_t *)src) == 0) > > + return -1; > > + > > + return 0; > > +} > > + > > +/ > > Sigh, this code has been copied and pasted to every driver. > Why is it not part of standard rte_ethdev code. >