summary refs log tree commit diff stats
path: root/plugins/core.c
diff options
context:
space:
mode:
authorPierrick Bouvier <pierrick.bouvier@linaro.org>2024-02-27 14:43:22 +0000
committerAlex Bennée <alex.bennee@linaro.org>2024-02-28 09:11:36 +0000
commit4a448b148ca076d80a41addd4fc1e49497cb23c8 (patch)
tree73b2d9122e8921d125dabe0b94019751f7d570b1 /plugins/core.c
parent926e146eff8d7b89754e8b681f80e962d220f077 (diff)
downloadfocaccia-qemu-4a448b148ca076d80a41addd4fc1e49497cb23c8.tar.gz
focaccia-qemu-4a448b148ca076d80a41addd4fc1e49497cb23c8.zip
plugins: add qemu_plugin_num_vcpus function
We now keep track of how many vcpus were started. This way, a plugin can
easily query number of any vcpus at any point of execution, which
unifies user and system mode workflows.

Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20240213094009.150349-3-pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20240227144335.1196131-17-alex.bennee@linaro.org>
Diffstat (limited to 'plugins/core.c')
-rw-r--r--plugins/core.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/plugins/core.c b/plugins/core.c
index ee2fa41af9..caa6631135 100644
--- a/plugins/core.c
+++ b/plugins/core.c
@@ -213,6 +213,7 @@ void qemu_plugin_vcpu_init_hook(CPUState *cpu)
     bool success;
 
     qemu_rec_mutex_lock(&plugin.lock);
+    plugin.num_vcpus = MAX(plugin.num_vcpus, cpu->cpu_index + 1);
     plugin_cpu_update__locked(&cpu->cpu_index, NULL, NULL);
     success = g_hash_table_insert(plugin.cpu_ht, &cpu->cpu_index,
                                   &cpu->cpu_index);
@@ -570,3 +571,8 @@ static void __attribute__((__constructor__)) plugin_init(void)
              QHT_MODE_AUTO_RESIZE);
     atexit(qemu_plugin_atexit_cb);
 }
+
+int plugin_num_vcpus(void)
+{
+    return plugin.num_vcpus;
+}