X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=include%2Fopenvswitch%2Flist.h;fp=include%2Fopenvswitch%2Flist.h;h=2bc294c5fb073f10658b7392d0e72ba0d9c41c65;hb=fa183acc654f7e5da17cd70fc91d6b5b02782183;hp=ea5b3dbbb60adb28bdd10f4cc0745b5c68ab5f4a;hpb=763f638b7f34953ccae8b494c63d0dab7f326b41;p=cascardo%2Fovs.git diff --git a/include/openvswitch/list.h b/include/openvswitch/list.h index ea5b3dbbb..2bc294c5f 100644 --- a/include/openvswitch/list.h +++ b/include/openvswitch/list.h @@ -80,6 +80,12 @@ static inline bool ovs_list_is_short(const struct ovs_list *); for (INIT_CONTAINER(ITER, (LIST)->prev, MEMBER); \ &(ITER)->MEMBER != (LIST); \ ASSIGN_CONTAINER(ITER, (ITER)->MEMBER.prev, MEMBER)) +#define LIST_FOR_EACH_REVERSE_SAFE(ITER, PREV, MEMBER, LIST) \ + for (INIT_CONTAINER(ITER, (LIST)->prev, MEMBER); \ + (&(ITER)->MEMBER != (LIST) \ + ? INIT_CONTAINER(PREV, (ITER)->MEMBER.prev, MEMBER), 1 \ + : 0); \ + (ITER) = (PREV)) #define LIST_FOR_EACH_REVERSE_CONTINUE(ITER, MEMBER, LIST) \ for (ASSIGN_CONTAINER(ITER, (ITER)->MEMBER.prev, MEMBER); \ &(ITER)->MEMBER != (LIST); \