Messages in this thread | | | Subject | Re: [PATCH 1/3] rbtree: Introduce rb_for_each_entry | From | Peter Zijlstra <> | Date | Wed, 13 Jan 2010 14:16:09 +0100 |
| |
On Wed, 2010-01-13 at 11:01 -0200, Arnaldo Carvalho de Melo wrote: > From: Arnaldo Carvalho de Melo <acme@redhat.com> > > Similar to list_for_each_entry, helps reducing boilerplate in many > places and makes rbtrees closer to list.h macros. > > First conversion will be in the tools/perf.
I'm still not sure you really want to do this, it might give people the impression its a sane thing to do ;-)
> Cc: Frédéric Weisbecker <fweisbec@gmail.com> > Cc: Mike Galbraith <efault@gmx.de> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Paul Mackerras <paulus@samba.org> > Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> > --- > include/linux/rbtree.h | 12 ++++++++++++ > 1 files changed, 12 insertions(+), 0 deletions(-) > > diff --git a/include/linux/rbtree.h b/include/linux/rbtree.h > index 9c29541..044b150 100644 > --- a/include/linux/rbtree.h > +++ b/include/linux/rbtree.h > @@ -158,4 +158,16 @@ static inline void rb_link_node(struct rb_node * node, struct rb_node * parent, > *rb_link = node; > } > > +/** > + * rb_for_each_entry - iterate over rbtree of given type > + * @pos: the type * to hold the current entry being traversed > + * @node: the rb_node to hold the current entry being traversed > + * @root: the root for your tree. > + * @member: the name of the rb_node within the struct. > + */ > +#define rb_for_each_entry(pos, node, root, member) \ > + for (node = rb_first(root); \ > + node && (pos = rb_entry(node, typeof(*pos), member)); \ > + node = rb_next(node)) > + > #endif /* _LINUX_RBTREE_H */
-- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |