Messages in this thread | | | Subject | Re: [ 052/153] idr: idr_for_each_entry() macro | From | Ben Hutchings <> | Date | Tue, 05 Mar 2013 05:24:25 +0000 |
| |
On Mon, 2013-03-04 at 22:05 +0100, Philipp Reisner wrote: > Sure, here it is: > ---------- > > From: Philipp Reisner <philipp.reisner@linbit.com> > > commit 9749f30f1a387070e6e8351f35aeb829eacc3ab6 upstream. > > Inspired by the list_for_each_entry() macro > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Thanks.
Ben.
> --- > include/linux/idr.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/linux/idr.h b/include/linux/idr.h > index 255491c..52a9da2 100644 > --- a/include/linux/idr.h > +++ b/include/linux/idr.h > @@ -152,4 +152,15 @@ void ida_simple_remove(struct ida *ida, unsigned int id); > > void __init idr_init_cache(void); > > +/** > + * idr_for_each_entry - iterate over an idr's elements of a given type > + * @idp: idr handle > + * @entry: the type * to use as cursor > + * @id: id entry's key > + */ > +#define idr_for_each_entry(idp, entry, id) \ > + for (id = 0, entry = (typeof(entry))idr_get_next((idp), &(id)); \ > + entry != NULL; \ > + ++id, entry = (typeof(entry))idr_get_next((idp), &(id))) > + > #endif /* __IDR_H__ */ > >
-- Ben Hutchings Always try to do things in chronological order; it's less confusing that way. [unhandled content-type:application/pgp-signature] | |