diff mbox

[v3,2/6] queue: Add macro for incremental traversal

Message ID 148285304262.12721.17599380934779528989.stgit@fimbulvetr.bsc.es
State New
Headers show

Commit Message

Lluís Vilanova Dec. 27, 2016, 3:37 p.m. UTC
Adds macro QTAILQ_FOREACH_CONTINUE to support incremental list
traversal.

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 include/qemu/queue.h |    5 +++++
 1 file changed, 5 insertions(+)

Comments

Peter Maydell Dec. 27, 2016, 3:53 p.m. UTC | #1
On 27 December 2016 at 15:37, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
> Adds macro QTAILQ_FOREACH_CONTINUE to support incremental list
> traversal.
>
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  include/qemu/queue.h |    5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/include/qemu/queue.h b/include/qemu/queue.h
> index 342073fb4d..0d709016f4 100644
> --- a/include/qemu/queue.h
> +++ b/include/qemu/queue.h
> @@ -415,6 +415,11 @@ struct {                                                                \
>                  (var);                                                  \
>                  (var) = ((var)->field.tqe_next))
>
> +#define QTAILQ_FOREACH_CONTINUE(var, field)                             \
> +        for ((var) = ((var)->field.tqe_next);                           \
> +                (var);                                                  \
> +                (var) = ((var)->field.tqe_next))
> +
>  #define QTAILQ_FOREACH_SAFE(var, head, field, next_var)                 \
>          for ((var) = ((head)->tqh_first);                               \
>                  (var) && ((next_var) = ((var)->field.tqe_next), 1);     \

Could we have some documentation for the new macro, please?

thanks
-- PMM
Lluís Vilanova Dec. 27, 2016, 7:07 p.m. UTC | #2
Peter Maydell writes:

> On 27 December 2016 at 15:37, Lluís Vilanova <vilanova@ac.upc.edu> wrote:
>> Adds macro QTAILQ_FOREACH_CONTINUE to support incremental list
>> traversal.
>> 
>> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
>> ---
>> include/qemu/queue.h |    5 +++++
>> 1 file changed, 5 insertions(+)
>> 
>> diff --git a/include/qemu/queue.h b/include/qemu/queue.h
>> index 342073fb4d..0d709016f4 100644
>> --- a/include/qemu/queue.h
>> +++ b/include/qemu/queue.h
>> @@ -415,6 +415,11 @@ struct {                                                                \
>> (var);                                                  \
>> (var) = ((var)->field.tqe_next))
>> 
>> +#define QTAILQ_FOREACH_CONTINUE(var, field)                             \
>> +        for ((var) = ((var)->field.tqe_next);                           \
>> +                (var);                                                  \
>> +                (var) = ((var)->field.tqe_next))
>> +
>> #define QTAILQ_FOREACH_SAFE(var, head, field, next_var)                 \
>> for ((var) = ((head)->tqh_first);                               \
>> (var) && ((next_var) = ((var)->field.tqe_next), 1);     \

> Could we have some documentation for the new macro, please?

Sure thing.

Lluis
diff mbox

Patch

diff --git a/include/qemu/queue.h b/include/qemu/queue.h
index 342073fb4d..0d709016f4 100644
--- a/include/qemu/queue.h
+++ b/include/qemu/queue.h
@@ -415,6 +415,11 @@  struct {                                                                \
                 (var);                                                  \
                 (var) = ((var)->field.tqe_next))
 
+#define QTAILQ_FOREACH_CONTINUE(var, field)                             \
+        for ((var) = ((var)->field.tqe_next);                           \
+                (var);                                                  \
+                (var) = ((var)->field.tqe_next))
+
 #define QTAILQ_FOREACH_SAFE(var, head, field, next_var)                 \
         for ((var) = ((head)->tqh_first);                               \
                 (var) && ((next_var) = ((var)->field.tqe_next), 1);     \