From mboxrd@z Thu Jan 1 00:00:00 1970 From: pierre-marc.fournier@polymtl.ca (Pierre-Marc Fournier) Date: Wed, 18 Aug 2010 00:13:28 -0400 Subject: [ltt-dev] [PATCH] Fixes container_of macro redefinition warnings In-Reply-To: <1281968694-27959-1-git-send-email-david.goulet@polymtl.ca> References: <1281968694-27959-1-git-send-email-david.goulet@polymtl.ca> Message-ID: <4C6B5DE8.30500@polymtl.ca> Nack. There's no need for this. UST has explicit minimum requirements on liburcu versions. So when the next liburcu is released, the next version of UST will simply remove container_of and depend on that new version of liburcu. container_of was anyway just a leftover from the port of the kernel code. pmf On 08/16/2010 10:24 AM, David Goulet wrote: > On urcu commit 453629a9317adef5b96c3d55e4dcd98db680997a, the > container_of macro was moved to urcu/compiler.h. Since, multiple > warnings appear about redefinition > > Signed-off-by: David Goulet > --- > include/ust/core.h | 2 ++ > include/ust/kcompat/simple.h | 3 ++- > 2 files changed, 4 insertions(+), 1 deletions(-) > > diff --git a/include/ust/core.h b/include/ust/core.h > index 0172614..d5a1f4d 100644 > --- a/include/ust/core.h > +++ b/include/ust/core.h > @@ -141,8 +141,10 @@ static __inline__ int get_count_order(unsigned int count) > return order; > } > > +#ifndef container_of > #define container_of(ptr, type, member) ({ \ > const typeof( ((type *)0)->member ) *__mptr = (ptr); \ > (type *)( (char *)__mptr - offsetof(type,member) );}) > +#endif /* containter_of */ > > #endif /* UST_CORE_H */ > diff --git a/include/ust/kcompat/simple.h b/include/ust/kcompat/simple.h > index 762d802..586b2ed 100644 > --- a/include/ust/kcompat/simple.h > +++ b/include/ust/kcompat/simple.h > @@ -28,10 +28,11 @@ > * @member: the name of the member within the struct. > * > */ > +#ifndef container_of > #define container_of(ptr, type, member) ({ \ > const typeof( ((type *)0)->member ) *__mptr = (ptr); \ > (type *)( (char *)__mptr - offsetof(type,member) );}) > - > +#endif /* container_of */ > > /* libkcompat: from rcupdate.h */ >