[ltt-dev] [PATCH] Fixes container_of macro redefinition warnings

Pierre-Marc Fournier pierre-marc.fournier at polymtl.ca
Wed Aug 18 00:13:28 EDT 2010


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<david.goulet at polymtl.ca>
> ---
>   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 */
>





More information about the lttng-dev mailing list