[lttng-dev] [PATCH urcu] urcu: add cds_list_for_each_entry_safe_from macro

Mathieu Desnoyers mathieu.desnoyers at efficios.com
Fri May 8 16:24:40 EDT 2015


----- Original Message -----
> Same as cds_list_for_each_entry_safe, but starts at an arbitrary point
> within the list instead of at the head.

Merged in urcu master branch, thanks!

Mathieu

> 
> Signed-off-by: Jeff Layton <jeff.layton at primarydata.com>
> ---
>  urcu/list.h | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/urcu/list.h b/urcu/list.h
> index b4962b445dfb..4aaf869351fe 100644
> --- a/urcu/list.h
> +++ b/urcu/list.h
> @@ -171,6 +171,15 @@ void cds_list_splice(struct cds_list_head *add, struct
> cds_list_head *head)
>  		&pos->member != (head); \
>  		pos = p, p = cds_list_entry(pos->member.next, __typeof__(*pos), member))
>  
> +/*
> + * Same as cds_list_for_each_entry_safe, but starts from "pos" which should
> + * point to an entry within the list.
> + */
> +#define cds_list_for_each_entry_safe_from(pos, p, head, member) \
> +        for (p = cds_list_entry(pos->member.next, __typeof__(*pos), member);
> \
> +                &pos->member != (head); \
> +                pos = p, p = cds_list_entry(pos->member.next,
> __typeof__(*pos), member))
> +
>  static inline
>  int cds_list_empty(struct cds_list_head *head)
>  {
> --
> 2.1.0
> 
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
> 

-- 
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com



More information about the lttng-dev mailing list