Richard Henderson writes:

> On 06/12/2017 07:54 AM, Lluís Vilanova wrote:
>> Adds macro QTAILQ_FOREACH_CONTINUE to support incremental list
>> traversal.
>> 
>> Signed-off-by: Lluís Vilanova <vilan...@ac.upc.edu>
>> ---
>> include/qemu/queue.h |   12 ++++++++++++
>> 1 file changed, 12 insertions(+)
>> 
>> diff --git a/include/qemu/queue.h b/include/qemu/queue.h
>> index 35292c3155..eb2bf9cb1c 100644
>> --- a/include/qemu/queue.h
>> +++ b/include/qemu/queue.h
>> @@ -415,6 +415,18 @@ struct {                                                
>>                 \
>> (var);                                                  \
>> (var) = ((var)->field.tqe_next))
>> +/**
>> + * QTAILQ_FOREACH_CONTINUE:
>> + * @var: Variable to resume iteration from.
>> + * @field: Field in @var holding a QTAILQ_ENTRY for this queue.
>> + *
>> + * Resumes iteration on a queue from the element in @var.
>> + */
>> +#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);     \
>> 
>> 

> I still say this isn't required if the breakpoint loop is better structured.

I can embed the use of QTAILQ into translate-block.c, but I wanted to keep the
implementation of breakpoint lists hidden behind the cpu_breakpoint API.


Thanks,
  Lluis

Reply via email to