aboutsummaryrefslogtreecommitdiff
path: root/include/exec
diff options
context:
space:
mode:
authorPeter Xu <peterx@redhat.com>2017-05-12 12:17:39 +0800
committerDr. David Alan Gilbert <dgilbert@redhat.com>2017-05-17 17:30:37 +0100
commit99e15582dea30d4a7c6fa5be9196d0f4d759231c (patch)
tree082f2e55209efa3bce4598cb427c60d9ff39e6db /include/exec
parentcdece0467c00007cf8e3f4b3c3f0b13bf2c4fea9 (diff)
ramblock: add RAMBLOCK_FOREACH()
So that it can simplifies the iterators. Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Peter Xu <peterx@redhat.com> Message-Id: <1494562661-9063-2-git-send-email-peterx@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'include/exec')
-rw-r--r--include/exec/ramlist.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/include/exec/ramlist.h b/include/exec/ramlist.h
index c59880de82..f1c6b45df9 100644
--- a/include/exec/ramlist.h
+++ b/include/exec/ramlist.h
@@ -4,6 +4,7 @@
#include "qemu/queue.h"
#include "qemu/thread.h"
#include "qemu/rcu.h"
+#include "qemu/rcu_queue.h"
typedef struct RAMBlockNotifier RAMBlockNotifier;
@@ -54,6 +55,10 @@ typedef struct RAMList {
} RAMList;
extern RAMList ram_list;
+/* Should be holding either ram_list.mutex, or the RCU lock. */
+#define RAMBLOCK_FOREACH(block) \
+ QLIST_FOREACH_RCU(block, &ram_list.blocks, next)
+
void qemu_mutex_lock_ramlist(void);
void qemu_mutex_unlock_ramlist(void);