summaryrefslogtreecommitdiff
path: root/kernel/include
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include')
-rw-r--r--kernel/include/libk/list.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/include/libk/list.h b/kernel/include/libk/list.h
index 1cd9928..690f3d7 100644
--- a/kernel/include/libk/list.h
+++ b/kernel/include/libk/list.h
@@ -31,6 +31,9 @@ void free_node(list_t* head);
#define list_for_each_entry_prev(pos, head, member) \
for (pos = container_of(head->prev, typeof(*pos), member); pos != container_of(head, typeof(*pos), member); pos = container_of(pos->member.prev, typeof(*pos), member))
+#define list_for_each_entry_del(pos, head, member) \
+ for (pos = container_of(head->next, typeof(*pos), member); pos != container_of(head, typeof(*pos), member); free_node(&pos->list), pos = container_of(head->next, typeof(*pos), member))
+
#define list_is_empty(pos) \
(pos == pos->next)