From 31280d92d1cfd31743ebde611ad48d92239ca9aa Mon Sep 17 00:00:00 2001 From: aliguori Date: Tue, 25 Nov 2008 22:05:37 +0000 Subject: Add TAILQ_FOREACH_SAFE (Jan Kiszka) Add TAILQ iterator that allows to safely remove elements while walking the list. Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5798 c046a42c-6fe2-441c-8c8c-71466251a162 --- sys-queue.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'sys-queue.h') diff --git a/sys-queue.h b/sys-queue.h index 3d0773eeb7..ad5c8fb5f8 100644 --- a/sys-queue.h +++ b/sys-queue.h @@ -210,6 +210,11 @@ struct { \ (var); \ (var) = ((var)->field.tqe_next)) +#define TAILQ_FOREACH_SAFE(var, head, field, next_var) \ + for ((var) = ((head)->tqh_first); \ + (var) && ((next_var) = ((var)->field.tqe_next), 1); \ + (var) = (next_var)) + #define TAILQ_FOREACH_REVERSE(var, head, headname, field) \ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \ (var); \ -- cgit v1.2.3