[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 <[EMAIL PROTECTED]> --- 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), >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 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[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 [EMAIL PROTECTED] --- 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 -- To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/