Peter Maydell <peter.mayd...@linaro.org> writes:
> Currently the Arm semihosting code returns the guest file descriptors > (handles) which are simply the fd values from the host OS or the > remote gdbstub. Part of the semihosting 2.0 specification requires > that we implement special handling of opening a ":semihosting-features" > filename. Guest fds which result from opening the special file > won't correspond to host fds, so to ensure that we don't end up > with duplicate fds we need to have QEMU code control the allocation > of the fd values we give the guest. > > Add in an abstraction layer which lets us allocate new guest FD > values, and translate from a guest FD value back to the host one. > This also fixes an odd hole where a semihosting guest could > use the semihosting API to read, write or close file descriptors > that it had never allocated but which were being used by QEMU itself. I'm kind surprised QEMU doesn't already need this sort of facility for something else. I guess virtfs and 9p have their own thing? > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Anyway: Reviewed-by: Alex Bennée <alex.ben...@linaro.org> -- Alex Bennée