diff --git a/include/nuttx/list.h b/include/nuttx/list.h index 328178b2738..20587802605 100644 --- a/include/nuttx/list.h +++ b/include/nuttx/list.h @@ -257,6 +257,13 @@ &entry->member != (list); entry = temp, \ temp = container_of(temp->member.next, type, member)) +/* Iterate from a given entry node in a safe way */ + +#define list_for_every_entry_safe_from(list, cur, temp, type, member) \ + for ((temp) = list_next_entry(cur, type, member); \ + &(cur)->member != (list); \ + (cur) = (temp), (temp) = list_next_entry(temp, type, member)) + #define list_for_every_entry_continue(list, head, type, member) \ for ((list) = list_next_entry(list, type, member); \ &(list)->member != (head); \