Skip to content

Commit f6d6a3e

Browse files
committed
plugins_fix_reset
1 parent f29f0f7 commit f6d6a3e

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

contrib/plugins/meson.build

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
t = []
22
if get_option('plugins')
33
foreach i : ['cache', 'drcov', 'execlog', 'hotblocks', 'hotpages', 'howvec',
4-
'hwprofile', 'ips', 'lockstep', 'stoptrigger']
4+
'hwprofile', 'ips', 'lockstep', 'stoptrigger', 'min']
55
if host_os == 'windows'
66
t += shared_module(i, files(i + '.c') + 'win32_linker.c',
77
include_directories: '../../include/qemu',

contrib/plugins/min.c

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#include <stdio.h>
2+
#include <qemu-plugin.h>
3+
4+
QEMU_PLUGIN_EXPORT int qemu_plugin_version = QEMU_PLUGIN_VERSION;
5+
6+
qemu_plugin_id_t plugin_id = {0};
7+
8+
static void post_reset(qemu_plugin_id_t id) {
9+
printf("Reset finished\n");
10+
}
11+
12+
static void vcpu_tb_trans(qemu_plugin_id_t id, struct qemu_plugin_tb *tb) {
13+
printf("Translating basic block\n");
14+
qemu_plugin_reset(plugin_id, post_reset);
15+
printf("Reset request issued\n");
16+
}
17+
18+
QEMU_PLUGIN_EXPORT int qemu_plugin_install(qemu_plugin_id_t id,
19+
const qemu_info_t *info, int argc, char **argv) {
20+
21+
qemu_plugin_register_vcpu_tb_trans_cb(id, vcpu_tb_trans);
22+
plugin_id = id;
23+
return 0;
24+
}

0 commit comments

Comments
 (0)