[tcp] Allow out-of-order receive queue to be discarded
[gpxe.git] / src / include / gpxe / list.h
index 22ba201..02b0f6e 100644 (file)
@@ -162,6 +162,18 @@ static inline int list_empty ( const struct list_head *head ) {
              &pos->member != (head);                                         \
              pos = list_entry ( pos->member.next, typeof ( *pos ), member ) )
 
+/**
+ * Iterate over entries in a list in reverse order
+ *
+ * @v pos      The type * to use as a loop counter
+ * @v head     The head for your list
+ * @v member   The name of the list_struct within the struct
+ */
+#define list_for_each_entry_reverse( pos, head, member )                     \
+       for ( pos = list_entry ( (head)->prev, typeof ( *pos ), member );     \
+             &pos->member != (head);                                         \
+             pos = list_entry ( pos->member.prev, typeof ( *pos ), member ) )
+
 /**
  * Iterate over entries in a list, safe against deletion of entries
  *