From 5cf49e47c0c8a28b200dcf9ad2db9345f9ce1b72 Mon Sep 17 00:00:00 2001 From: Julian Anastasov Date: Mon, 29 Sep 2003 11:44:52 -0700 Subject: [PATCH] [KERNEL]: Introduce list_for_each_entry_continue. --- include/linux/list.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/linux/list.h b/include/linux/list.h index b0ce7a7c0e7aa..9e218f0e471c0 100644 --- a/include/linux/list.h +++ b/include/linux/list.h @@ -325,6 +325,19 @@ static inline void list_splice_init(struct list_head *list, pos = list_entry(pos->member.prev, typeof(*pos), member), \ prefetch(pos->member.prev)) +/** + * list_for_each_entry_continue - iterate over list of given type + * continuing after existing point + * @pos: the type * to use as a loop counter. + * @head: the head for your list. + * @member: the name of the list_struct within the struct. + */ +#define list_for_each_entry_continue(pos, head, member) \ + for (pos = list_entry(pos->member.next, typeof(*pos), member), \ + prefetch(pos->member.next); \ + &pos->member != (head); \ + pos = list_entry(pos->member.next, typeof(*pos), member), \ + prefetch(pos->member.next)) /** * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry -- 2.53.0