Hi Alex,
On 2/25/25 03:08, Alex Bennée wrote:
As we move towards a more modular build this series converts both
loader and api to build once objects. For both objects the only real
difference is between user mode and system emulation so those bits
have been hived off into those source sets.
The remaining core plugin is more intimately aligned with the TCG
backend so requires definitions like TCG_TARGET_LONG. Hopefully this
can been cleaned up once Richards TCG rationalisation code is added.
Please review.
Alex.
Alex Bennée (10):
plugins/api: use tcg_ctx to get TARGET_PAGE_MASK
plugins/loader: populate target_name with target_name()
include/qemu: plugin-memory.h doesn't need cpu-defs.h
plugins/api: clean-up the includes
plugins/plugin.h: include queue.h
plugins/loader: compile loader only once
plugins/api: split out binary path/start/end/entry code
plugins/api: split out the vaddr/hwaddr helpers
plugins/api: split out time control helpers
plugins/api: build only once
for all the series:
Reviewed-by: Pierrick Bouvier <pierrick.bouv...@linaro.org>
Additionnally, I would suggest to go further and merge functions for
system and user mode, by checking at runtime what is the mode, by
introducing a helper function for that. This way, all files can be
really linked together, without having to select a different set of
sources depending on which binary is built.
Regards,
Pierrick
include/qemu/plugin-memory.h | 1 -
plugins/plugin.h | 7 ++
linux-user/plugin-api.c | 43 +++++++++
plugins/api-system.c | 131 +++++++++++++++++++++++++++
plugins/api-user.c | 57 ++++++++++++
plugins/api.c | 170 +----------------------------------
plugins/loader.c | 15 +---
plugins/system.c | 24 +++++
plugins/user.c | 19 ++++
linux-user/meson.build | 1 +
plugins/meson.build | 8 +-
11 files changed, 292 insertions(+), 184 deletions(-)
create mode 100644 linux-user/plugin-api.c
create mode 100644 plugins/api-system.c
create mode 100644 plugins/api-user.c
create mode 100644 plugins/system.c
create mode 100644 plugins/user.c