Messages in this thread Patch in this message | | | Date | Wed, 5 Dec 2007 20:31:07 +0530 | From | Bharata B Rao <> | Subject | [RFC PATCH 3/5] Add list_for_each_entry_reverse_from() |
| |
Introduce list_for_each_entry_reverse_from() needed by a subsequent patch.
Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> --- include/linux/list.h | 13 +++++++++++++ 1 file changed, 13 insertions(+)
--- a/include/linux/list.h +++ b/include/linux/list.h @@ -562,6 +562,19 @@ static inline void list_splice_init_rcu( pos = list_entry(pos->member.next, typeof(*pos), member)) /** + * list_for_each_entry_reverse_from - iterate backwards over list of given + * type from the current point + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + * + * Iterate backwards over list of given type, continuing from current position. + */ +#define list_for_each_entry_reverse_from(pos, head, member) \ + for (; prefetch(pos->member.prev), &pos->member != (head); \ + pos = list_entry(pos->member.prev, typeof(*pos), member)) + +/** * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry * @pos: the type * to use as a loop cursor. * @n: another type * to use as temporary storage
| |