|
@@ -26,6 +26,7 @@
|
|
|
#include "exec/memattrs.h"
|
|
|
#include "qapi/qapi-types-run-state.h"
|
|
|
#include "qemu/bitmap.h"
|
|
|
+#include "qemu/rcu_queue.h"
|
|
|
#include "qemu/queue.h"
|
|
|
#include "qemu/thread.h"
|
|
|
|
|
@@ -442,13 +443,11 @@ struct CPUState {
|
|
|
|
|
|
QTAILQ_HEAD(CPUTailQ, CPUState);
|
|
|
extern struct CPUTailQ cpus;
|
|
|
-#define CPU_NEXT(cpu) QTAILQ_NEXT(cpu, node)
|
|
|
-#define CPU_FOREACH(cpu) QTAILQ_FOREACH(cpu, &cpus, node)
|
|
|
+#define first_cpu QTAILQ_FIRST_RCU(&cpus)
|
|
|
+#define CPU_NEXT(cpu) QTAILQ_NEXT_RCU(cpu, node)
|
|
|
+#define CPU_FOREACH(cpu) QTAILQ_FOREACH_RCU(cpu, &cpus, node)
|
|
|
#define CPU_FOREACH_SAFE(cpu, next_cpu) \
|
|
|
- QTAILQ_FOREACH_SAFE(cpu, &cpus, node, next_cpu)
|
|
|
-#define CPU_FOREACH_REVERSE(cpu) \
|
|
|
- QTAILQ_FOREACH_REVERSE(cpu, &cpus, CPUTailQ, node)
|
|
|
-#define first_cpu QTAILQ_FIRST(&cpus)
|
|
|
+ QTAILQ_FOREACH_SAFE_RCU(cpu, &cpus, node, next_cpu)
|
|
|
|
|
|
extern __thread CPUState *current_cpu;
|
|
|
|