Richard Henderson <richard.hender...@linaro.org> writes:
> 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: Peter Maydell <peter.mayd...@linaro.org> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > configs/targets/aarch64-linux-user.mak | 1 + > configs/targets/aarch64_be-linux-user.mak | 1 + > configs/targets/arm-linux-user.mak | 1 + > configs/targets/armeb-linux-user.mak | 1 + > configs/targets/riscv32-linux-user.mak | 1 + > configs/targets/riscv64-linux-user.mak | 1 + > include/semihosting/guestfd.h | 83 +++++++++++ > semihosting/arm-compat-semi.c | 164 +++------------------- > semihosting/guestfd.c | 118 ++++++++++++++++ > semihosting/meson.build | 4 + > 10 files changed, 233 insertions(+), 142 deletions(-) > create mode 100644 include/semihosting/guestfd.h > create mode 100644 semihosting/guestfd.c > > diff --git a/configs/targets/aarch64-linux-user.mak > b/configs/targets/aarch64-linux-user.mak > index d0c603c54e..db552f1839 100644 > --- a/configs/targets/aarch64-linux-user.mak > +++ b/configs/targets/aarch64-linux-user.mak > @@ -2,4 +2,5 @@ TARGET_ARCH=aarch64 > TARGET_BASE_ARCH=arm > TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml > TARGET_HAS_BFLT=y > +CONFIG_SEMIHOSTING=y > CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y > diff --git a/configs/targets/aarch64_be-linux-user.mak > b/configs/targets/aarch64_be-linux-user.mak > index 7794424745..dc78044fb1 100644 > --- a/configs/targets/aarch64_be-linux-user.mak > +++ b/configs/targets/aarch64_be-linux-user.mak > @@ -3,4 +3,5 @@ TARGET_BASE_ARCH=arm > TARGET_BIG_ENDIAN=y > TARGET_XML_FILES= gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml > TARGET_HAS_BFLT=y > +CONFIG_SEMIHOSTING=y > CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y > diff --git a/configs/targets/arm-linux-user.mak > b/configs/targets/arm-linux-user.mak > index 3e10d6b15d..7f5d65794c 100644 > --- a/configs/targets/arm-linux-user.mak > +++ b/configs/targets/arm-linux-user.mak > @@ -3,4 +3,5 @@ TARGET_SYSTBL_ABI=common,oabi > TARGET_SYSTBL=syscall.tbl > TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml > gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml > gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml > TARGET_HAS_BFLT=y > +CONFIG_SEMIHOSTING=y > CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y > diff --git a/configs/targets/armeb-linux-user.mak > b/configs/targets/armeb-linux-user.mak > index a249cc2e29..943d0d87bf 100644 > --- a/configs/targets/armeb-linux-user.mak > +++ b/configs/targets/armeb-linux-user.mak > @@ -4,4 +4,5 @@ TARGET_SYSTBL=syscall.tbl > TARGET_BIG_ENDIAN=y > TARGET_XML_FILES= gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml > gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml > gdb-xml/arm-m-profile.xml gdb-xml/arm-m-profile-mve.xml > TARGET_HAS_BFLT=y > +CONFIG_SEMIHOSTING=y > CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y > diff --git a/configs/targets/riscv32-linux-user.mak > b/configs/targets/riscv32-linux-user.mak > index bd2f1fd497..9761618e67 100644 > --- a/configs/targets/riscv32-linux-user.mak > +++ b/configs/targets/riscv32-linux-user.mak > @@ -2,4 +2,5 @@ TARGET_ARCH=riscv32 > TARGET_BASE_ARCH=riscv > TARGET_ABI_DIR=riscv > TARGET_XML_FILES= gdb-xml/riscv-32bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml > gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-32bit-virtual.xml > +CONFIG_SEMIHOSTING=y > CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y > diff --git a/configs/targets/riscv64-linux-user.mak > b/configs/targets/riscv64-linux-user.mak > index 4aca7662ce..cfd1fd382f 100644 > --- a/configs/targets/riscv64-linux-user.mak > +++ b/configs/targets/riscv64-linux-user.mak > @@ -2,4 +2,5 @@ TARGET_ARCH=riscv64 > TARGET_BASE_ARCH=riscv > TARGET_ABI_DIR=riscv > TARGET_XML_FILES= gdb-xml/riscv-64bit-cpu.xml gdb-xml/riscv-32bit-fpu.xml > gdb-xml/riscv-64bit-fpu.xml gdb-xml/riscv-64bit-virtual.xml > +CONFIG_SEMIHOSTING=y > CONFIG_ARM_COMPATIBLE_SEMIHOSTING=y Why are these needed? The: config ARM_COMPATIBLE_SEMIHOSTING bool select SEMIHOSTING stanza should ensure we select SEMIHOSTING automatically. Otherwise: Reviewed-by: Alex Bennée <alex.ben...@linaro.org> -- Alex Bennée