[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE |
Date: |
Mon, 24 Nov 2008 12:35:08 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
Jamie Lokier wrote:
> Anthony Liguori wrote:
>> Wouldn't:
>>
>> (var) ? ({ (next_var) = ((var)->field.tqe_next); 1;}) :0;
>>
>> Be equivalent to:
>>
>> (var) ? ((next_var = ((var)->field.tqe_next), var) : var
>
> Simpler:
>
> (var) && ((next_var) = (var)->field.tqe_next, 1)
>
Yes, indeed!
Anthony, could you merge this one and its application patch? I need both
of them for my kvm series.
Jan
-------------->
Add TAILQ iterator that allows to safely remove elements while walking
the list.
Signed-off-by: Jan Kiszka <address@hidden>
---
sys-queue.h | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/sys-queue.h b/sys-queue.h
index 3d0773e..ad5c8fb 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); \
- [Qemu-devel] [PATCH 0/2] Use TAILQ for breakpoints, Jan Kiszka, 2008/11/19
- [Qemu-devel] [PATCH 2/2] Use sys-queue.h for break/watchpoint managment, Jan Kiszka, 2008/11/19
- [Qemu-devel] [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Jan Kiszka, 2008/11/19
- Re: [Qemu-devel] [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Anthony Liguori, 2008/11/19
- [Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Jan Kiszka, 2008/11/19
- Re: [Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Anthony Liguori, 2008/11/19
- [Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Jan Kiszka, 2008/11/20
- Re: [Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Jamie Lokier, 2008/11/20
- [Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE,
Jan Kiszka <=
- [Qemu-devel] Re: [PATCH 1/2] Add TAILQ_FOREACH_SAFE, Anthony Liguori, 2008/11/25