[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 1/7] qemu/queue: add some useful QLIST_ and QTAILQ_ macros
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH 1/7] qemu/queue: add some useful QLIST_ and QTAILQ_ macros |
Date: |
Fri, 29 Jan 2021 19:50:24 +0300 |
Add QLIST_FOREACH_FUNC_SAFE(), QTAILQ_FOREACH_FUNC_SAFE() and
QTAILQ_POP_HEAD(), to be used in following commit.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
include/qemu/queue.h | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/include/qemu/queue.h b/include/qemu/queue.h
index e029e7bf66..03e1fce85f 100644
--- a/include/qemu/queue.h
+++ b/include/qemu/queue.h
@@ -173,6 +173,13 @@ struct {
\
(var) && ((next_var) = ((var)->field.le_next), 1); \
(var) = (next_var))
+#define QLIST_FOREACH_FUNC_SAFE(head, field, func) do { \
+ typeof(*QLIST_FIRST(head)) *qffs_var, *qffs_next_var; \
+ QLIST_FOREACH_SAFE(qffs_var, (head), field, qffs_next_var) { \
+ (func)(qffs_var); \
+ } \
+} while (/*CONSTCOND*/0)
+
/*
* List access methods.
*/
@@ -490,6 +497,13 @@ union {
\
(var) && ((prev_var) = QTAILQ_PREV(var, field), 1); \
(var) = (prev_var))
+#define QTAILQ_FOREACH_FUNC_SAFE(head, field, func) do { \
+ typeof(*QTAILQ_FIRST(head)) *qffs_var, *qffs_next_var; \
+ QTAILQ_FOREACH_SAFE(qffs_var, (head), field, qffs_next_var) { \
+ (func)(qffs_var); \
+ } \
+} while (/*CONSTCOND*/0)
+
/*
* Tail queue access methods.
*/
--
2.29.2
- [PATCH 0/7] qcow2: compressed write cache, Vladimir Sementsov-Ogievskiy, 2021/01/29
- [PATCH 4/7] simplebench: bench_one(): add slow_limit argument, Vladimir Sementsov-Ogievskiy, 2021/01/29
- [PATCH 1/7] qemu/queue: add some useful QLIST_ and QTAILQ_ macros,
Vladimir Sementsov-Ogievskiy <=
- [PATCH 3/7] block/qcow2: use compressed write cache, Vladimir Sementsov-Ogievskiy, 2021/01/29
- [PATCH 2/7] block/qcow2: introduce cache for compressed writes, Vladimir Sementsov-Ogievskiy, 2021/01/29
- [PATCH 5/7] simplebench: bench_one(): support count=1, Vladimir Sementsov-Ogievskiy, 2021/01/29
- [PATCH 6/7] simplebench/bench-backup: add --compressed option, Vladimir Sementsov-Ogievskiy, 2021/01/29
- [PATCH 7/7] simplebench/bench-backup: add target-cache argument, Vladimir Sementsov-Ogievskiy, 2021/01/29
- Re: [PATCH 0/7] qcow2: compressed write cache, no-reply, 2021/01/29