[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 22/27] tests/tcg: expand insn test case to exercise register A
From: |
Alex Bennée |
Subject: |
[PATCH v3 22/27] tests/tcg: expand insn test case to exercise register API |
Date: |
Mon, 26 Feb 2024 16:56:41 +0000 |
This ensure we at least read every register the plugin API reports at
least once during the check-tcg checks.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
tests/plugin/insn.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/tests/plugin/insn.c b/tests/plugin/insn.c
index 5fd3017c2b3..54da06fcf26 100644
--- a/tests/plugin/insn.c
+++ b/tests/plugin/insn.c
@@ -46,6 +46,25 @@ typedef struct {
char *disas;
} Instruction;
+/*
+ * Initialise a new vcpu with reading the register list
+ */
+static void vcpu_init(qemu_plugin_id_t id, unsigned int vcpu_index)
+{
+ g_autoptr(GArray) reg_list = qemu_plugin_get_registers();
+ g_autoptr(GByteArray) reg_value = g_byte_array_new();
+
+ if (reg_list) {
+ for (int i = 0; i < reg_list->len; i++) {
+ qemu_plugin_reg_descriptor *rd = &g_array_index(
+ reg_list, qemu_plugin_reg_descriptor, i);
+ int count = qemu_plugin_read_register(rd->handle, reg_value);
+ g_assert(count > 0);
+ }
+ }
+}
+
+
static void vcpu_insn_exec_before(unsigned int cpu_index, void *udata)
{
unsigned int i = cpu_index % MAX_CPUS;
@@ -212,6 +231,8 @@ QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t
id,
sizes = g_array_new(true, true, sizeof(unsigned long));
}
+ /* Register init, translation block and exit callbacks */
+ qemu_plugin_register_vcpu_init_cb(id, vcpu_init);
qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);
qemu_plugin_register_atexit_cb(id, plugin_exit, NULL);
return 0;
--
2.39.2
- [PATCH v3 13/27] plugins: remove previous n_vcpus functions from API, (continued)
- [PATCH v3 13/27] plugins: remove previous n_vcpus functions from API, Alex Bennée, 2024/02/26
- [PATCH v3 26/27] docs/devel: document some plugin assumptions, Alex Bennée, 2024/02/26
- [PATCH v3 15/27] plugins: fix order of init/idle/resume callback, Alex Bennée, 2024/02/26
- [PATCH v3 16/27] linux-user: ensure nios2 processes queued work, Alex Bennée, 2024/02/26
- [PATCH v3 27/27] docs/devel: plugins can trigger a tb flush, Alex Bennée, 2024/02/26
- [PATCH v3 25/27] docs/devel: lift example and plugin API sections up, Alex Bennée, 2024/02/26
- [PATCH v3 19/27] gdbstub: expose api to find registers, Alex Bennée, 2024/02/26
- [PATCH v3 18/27] plugins: Use different helpers when reading registers, Alex Bennée, 2024/02/26
- [PATCH v3 24/27] contrib/plugins: extend execlog to track register changes, Alex Bennée, 2024/02/26
- [PATCH v3 20/27] plugins: create CPUPluginState and migrate plugin_mask, Alex Bennée, 2024/02/26
- [PATCH v3 22/27] tests/tcg: expand insn test case to exercise register API,
Alex Bennée <=
- [PATCH v3 23/27] contrib/plugins: fix imatch, Alex Bennée, 2024/02/26
- [PATCH v3 17/27] cpu: call plugin init hook asynchronously, Alex Bennée, 2024/02/26
- [PATCH v3 21/27] plugins: add an API to read registers, Alex Bennée, 2024/02/26