Skip to content

Commit

Permalink
idr: idr_for_each_entry() macro
Browse files Browse the repository at this point in the history
Inspired by the list_for_each_entry() macro
  • Loading branch information
Philipp Reisner committed Aug 29, 2011
1 parent 6618bf1 commit 9749f30
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions include/linux/idr.h
Original file line number Diff line number Diff line change
Expand Up @@ -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__ */

0 comments on commit 9749f30

Please sign in to comment.