Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754167Ab0AMNQS (ORCPT ); Wed, 13 Jan 2010 08:16:18 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752674Ab0AMNQR (ORCPT ); Wed, 13 Jan 2010 08:16:17 -0500 Received: from casper.infradead.org ([85.118.1.10]:41593 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751328Ab0AMNQR (ORCPT ); Wed, 13 Jan 2010 08:16:17 -0500 Subject: Re: [PATCH 1/3] rbtree: Introduce rb_for_each_entry From: Peter Zijlstra To: Arnaldo Carvalho de Melo Cc: Ingo Molnar , linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , =?ISO-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , Mike Galbraith , Paul Mackerras In-Reply-To: <1263387673-15231-1-git-send-email-acme@infradead.org> References: <1263387673-15231-1-git-send-email-acme@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 13 Jan 2010 14:16:09 +0100 Message-ID: <1263388569.4244.215.camel@laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1809 Lines: 48 On Wed, 2010-01-13 at 11:01 -0200, Arnaldo Carvalho de Melo wrote: > From: Arnaldo Carvalho de Melo > > 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 > Cc: Mike Galbraith > Cc: Peter Zijlstra > Cc: Paul Mackerras > Signed-off-by: Arnaldo Carvalho de Melo > --- > 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/