This series compiles once semihosting files in system mode. The most complicated file was semihosting/arm-compat-semi.c, which was carefully cleaned in easy to understand steps.
v2 -- - use vaddr for syscalls.c/.h - static qualifier for console_{in,out}_gf - use vaddr for arm-compat-semi.c - semihosting/arm-compat-semi: fix cast for common_semi_set_ret v3 -- - keep common_semi_sys_exit_extended (Peter) Pierrick Bouvier (12): semihosting/syscalls: compile once in system and per target for user mode semihosting/syscalls: replace uint64_t with vaddr where appropriate semihosting/guestfd: compile once for system/user semihosting/arm-compat-semi: change common_semi_sys_exit_extended target/riscv/common-semi-target: remove sizeof(target_ulong) target/{arm,riscv}/common-semi-target: eradicate target_ulong include/semihosting/common-semi: extract common_semi API semihosting/arm-compat-semi: eradicate sizeof(target_ulong) semihosting/arm-compat-semi: replace target_ulong with uint64_t semihosting/arm-compat-semi: eradicate target_long semihosting/arm-compat-semi: remove dependency on cpu.h semihosting/arm-compat-semi: compile once in system and per target for user mode include/semihosting/common-semi.h | 6 + include/semihosting/guestfd.h | 7 -- include/semihosting/semihost.h | 2 + include/semihosting/syscalls.h | 30 ++--- semihosting/arm-compat-semi-stub.c | 19 +++ semihosting/arm-compat-semi.c | 65 ++++++++--- semihosting/guestfd.c | 26 +---- semihosting/syscalls.c | 109 +++++++++--------- ...mon-semi-target.h => common-semi-target.c} | 22 ++-- ...mon-semi-target.h => common-semi-target.c} | 27 +++-- semihosting/meson.build | 18 +-- target/arm/meson.build | 4 + target/riscv/meson.build | 4 + 13 files changed, 190 insertions(+), 149 deletions(-) create mode 100644 semihosting/arm-compat-semi-stub.c rename target/arm/{common-semi-target.h => common-semi-target.c} (59%) rename target/riscv/{common-semi-target.h => common-semi-target.c} (53%) -- 2.47.2