Pierrick Bouvier and Alex Bennée
c9e79557e4
semihosting/arm-compat-semi: compile once in system and per target for user mode
...
We don't have any target dependency left in system mode, so we can
compile once.
User mode depends on qemu.h, which is duplicated between linux and bsd,
so we can't easily compile it once.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-ID: <20250822150058.18692-13-pierrick.bouvier@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-ID: <20250922093711.2768983-16-alex.bennee@linaro.org >
2025-09-26 10:07:53 +01:00
Pierrick Bouvier and Alex Bennée
d8028d4ede
semihosting/guestfd: compile once for system/user
...
We move relevant code to semihosting/arm-compat-semi.c, and add
functions to query CONFIG_ARM_COMPATIBLE_SEMIHOSTING at runtime.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-ID: <20250822150058.18692-4-pierrick.bouvier@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-ID: <20250922093711.2768983-7-alex.bennee@linaro.org >
2025-09-26 09:55:19 +01:00
Pierrick Bouvier and Alex Bennée
abc4522d01
semihosting/syscalls: compile once in system and per target for user mode
...
We replace target_ulong mechanically by uint64_t.
We can't compile (easily) this code once for user, as it relies on
various target/function types, so leave it in specific_ss for user mode.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Message-ID: <20250822150058.18692-2-pierrick.bouvier@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-ID: <20250922093711.2768983-5-alex.bennee@linaro.org >
2025-09-26 09:55:19 +01:00
Philippe Mathieu-Daudé and Alex Bennée
b8e6bfd669
semihosting/uaccess: Compile once
...
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-ID: <20250526095213.14113-3-philmd@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-ID: <20250627112512.1880708-5-alex.bennee@linaro.org >
2025-07-02 10:09:48 +01:00
Richard Henderson
d0b4cfa629
semihosting: Move user-only implementation out-of-line
...
Avoid testing CONFIG_USER_ONLY in semihost.h.
The only function that's required is semihosting_enabled.
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2025-04-23 14:08:32 -07:00
Philippe Mathieu-Daudé and Alex Bennée
bb0c5be8e9
semihosting/meson: Build config.o and console.o once
...
config.c and console.c don't use any target specific
headers anymore, move them from specific_ss[] to
system_ss[] so they are built once, but will also be
linked once, removing global symbol clash in a single
QEMU binary.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20250103171037.11265-6-philmd@linaro.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20250116160306.1709518-8-alex.bennee@linaro.org >
2025-01-17 10:44:03 +00:00
Paolo Bonzini
5837db4650
semihosting: move stubs out of stubs/
...
Since the semihosting stubs are needed exactly when the Kconfig symbols
are not needed, move them to semihosting/ and conditionalize them
on CONFIG_SEMIHOSTING and/or CONFIG_SYSTEM_ONLY.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
Message-ID: <20240408155330.522792-13-pbonzini@redhat.com >
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com >
2024-04-18 11:17:27 +02:00
Philippe Mathieu-Daudé and Richard Henderson
c7b64948f8
meson: Replace CONFIG_SOFTMMU -> CONFIG_SYSTEM_ONLY
...
Since we *might* have user emulation with softmmu,
use the clearer 'CONFIG_SYSTEM_ONLY' key to check
for system emulation.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org >
Reviewed-by: Richard Henderson <richard.henderson@linaro.org >
Message-Id: <20230613133347.82210-9-philmd@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2023-06-20 10:01:30 +02:00
Richard Henderson
5b3f39cb04
semihosting: Split out semihost_sys_open
...
Split out the non-ARM specific portions of SYS_OPEN to a
reusable function. This handles gdb and host file i/o.
Add helpers to validate the length of the filename string.
Prepare for usage by other semihosting by allowing the
filename length parameter to be 0, and calling strlen.
Reviewed-by: Luc Michel <lmichel@kalray.eu >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-28 04:35:39 +05:30
Richard Henderson
1c6ff7205b
semihosting: Split out guestfd.c
...
In arm-compat-semi.c, we have more advanced treatment of
guest file descriptors than we do in other implementations.
Split out GuestFD and related functions to a new file so
that they can be shared.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org >
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-28 04:35:07 +05:30
Richard Henderson
0a9221810c
semihosting: Move softmmu-uaccess.h functions out of line
...
Rather that static (and not even inline) functions within a
header, move the functions to semihosting/uaccess.c.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-28 04:35:06 +05:30
Richard Henderson
259739ce74
semihosting: Improve condition for config.c and console.c
...
While CONFIG_SEMIHOSTING is currently only set for softmmu,
this will not continue to be true.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org >
Signed-off-by: Richard Henderson <richard.henderson@linaro.org >
2022-06-28 04:35:06 +05:30
Philippe Mathieu-Daudé and Alex Bennée
8df9f0c3d7
semihosting: Move hw/semihosting/ -> semihosting/
...
With the exception of hw/core/, the hw/ directory only contains
device models used in system emulation. Semihosting is also used
by user emulation. As a generic feature, move it out of hw/ directory.
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org >
Signed-off-by: Alex Bennée <alex.bennee@linaro.org >
Message-Id: <20210226131356.3964782-3-f4bug@amsat.org >
Message-Id: <20210305135451.15427-3-alex.bennee@linaro.org >
2021-03-10 15:34:12 +00:00