> -----Original Message----- > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson > Sent: Wednesday, March 04, 2015 10:23 AM > To: Thomas Monjalon > Cc: dev at dpdk.org > Subject: Re: [dpdk-dev] [PATCH] ring: cleanup file-local macros at end-of-file > > On Tue, Mar 03, 2015 at 10:03:45PM +0100, Thomas Monjalon wrote: > > 2015-03-03 16:38, Bruce Richardson: > > > The ENQUEUE_PTRS and DEQUEUE_PTRS macros defined in rte_ring.h are > > > not meant to be global and are not prefixed with the RTE_ prefix. > > > Therefore undef the macros at end of file to avoid pollution of the > > > global namespace, in case ends apps end up wanting to reuse those names. > > > > > > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com> > > > --- > > > lib/librte_ring/rte_ring.h | 4 ++++ > > > 1 file changed, 4 insertions(+) > > > > > > diff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h > > > index bdf69b7..0d35648 100644 > > > --- a/lib/librte_ring/rte_ring.h > > > +++ b/lib/librte_ring/rte_ring.h > > > @@ -1232,6 +1232,10 @@ rte_ring_dequeue_burst(struct rte_ring *r, void > > > **obj_table, unsigned n) > > > return rte_ring_mc_dequeue_burst(r, obj_table, n); > > > } > > > > > > +/* undef un-prefixed macros which are local to this file */ > > > +#undef ENQUEUE_PTRS > > > +#undef DEQUEUE_PTRS > > > + > > > > Thanks for trying to clean-up things. > > Note that if an application is using this macro name, it will be destroyed > > when including rte_ring.h. > > Globally, DPDK namespace is awful and I hope we will be able to improve it. > > > Only if they are defining such a macro before including rte_ring.h, which I > would > expect to be an edge case. Also, in such a case, the compiler/preprocessor > will > give an error at the duplicate macro definition stage, and the simple fix is > to > reorder the header file inclusion to avoid problems i.e. no changing of dpdk > required. > I suppose a better fix to go along with this is to RTE-prefix the macros. I'll > see about doing a V2.
Why not just to rename it to __RTE_RING_ENQUEUE_PTRS__ or something, and put in the comments that it is for internal usage? Konstantin > > /Bruce