semihosting: Expand qemu_semihosting_console_inc to read

Allow more than one character to be read at one time.
Will be used by m68k and nios2 semihosting for stdio.

Reviewed-by: Luc Michel <lmichel@kalray.eu>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2022-05-01 12:31:08 -07:00
parent 3367d452b0
commit e7fb6f3205
4 changed files with 34 additions and 15 deletions

View file

@ -428,8 +428,15 @@ void do_common_semihosting(CPUState *cs)
break;
case TARGET_SYS_READC:
ret = qemu_semihosting_console_inc(cs);
common_semi_set_ret(cs, ret);
{
uint8_t ch;
int ret = qemu_semihosting_console_read(cs, &ch, 1);
if (ret == 1) {
common_semi_cb(cs, ch, 0);
} else {
common_semi_cb(cs, -1, EIO);
}
}
break;
case TARGET_SYS_ISERROR: