tlist: Add tlist_next() and tlist_prev() functions
[ccan] / ccan / tlist / tlist.h
index 937a834c0184fb4d54928ca57db9668a929b1f8c..28978514678d99a7df24ca66872465cf0cea3586 100644 (file)
                    (char *)(&(h)->_tcon[0].canary->member) -           \
                    (char *)((h)->_tcon[0].canary)))
 
+/**
+ * tlist_next - get the next entry in a list
+ * @h: the tlist
+ * @n: the list element
+ * @member: the list_node member of the type
+ *
+ * Returns the element of list @h immediately after @n, or NULL, if @n
+ * is the last element in the list.
+ */
+#define tlist_next(h, n, member)                                       \
+       list_next(tlist_raw((h), (n)), (n), member)
+
+/**
+ * tlist_prev - get the previous entry in a list
+ * @h: the tlist
+ * @n: the list element
+ * @member: the list_node member of the type
+ *
+ * Returns the element of list @h immediately before @n, or NULL, if
+ * @n is the first element in the list.
+ */
+#define tlist_prev(h, n, member)                                       \
+       list_prev(tlist_raw((h), (n)), (n), member)
+
 /**
  * tlist_for_each - iterate through a list.
  * @h: the tlist