We define a scoreboard that will hold our data per cpu. As well, we define a buffer per cpu that will be used to read registers and memories in a thread-safe way. For now, we just instrument all instructions with an empty callback. Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org> Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Message-ID: <20250902075042.223990-2-pierrick.bouvier@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-ID: <20250922093711.2768983-18-alex.bennee@linaro.org>
31 lines
1,016 B
Meson
31 lines
1,016 B
Meson
contrib_plugins = ['bbv', 'cache', 'cflow', 'drcov', 'execlog', 'hotblocks',
|
|
'hotpages', 'howvec', 'hwprofile', 'ips', 'stoptrigger',
|
|
'uftrace']
|
|
if host_os != 'windows'
|
|
# lockstep uses socket.h
|
|
contrib_plugins += 'lockstep'
|
|
endif
|
|
|
|
t = []
|
|
if get_option('plugins')
|
|
foreach i : contrib_plugins
|
|
if host_os == 'windows'
|
|
t += shared_module(i, files(i + '.c') + 'win32_linker.c',
|
|
include_directories: '../../include/qemu',
|
|
link_depends: [win32_qemu_plugin_api_lib],
|
|
link_args: win32_qemu_plugin_api_link_flags,
|
|
dependencies: glib)
|
|
else
|
|
t += shared_module(i, files(i + '.c'),
|
|
include_directories: '../../include/qemu',
|
|
dependencies: glib)
|
|
endif
|
|
endforeach
|
|
endif
|
|
if t.length() > 0
|
|
alias_target('contrib-plugins', t)
|
|
else
|
|
run_target('contrib-plugins', command: [python, '-c', ''])
|
|
endif
|
|
|
|
plugin_modules += t
|