semihosting: Create qemu_semihosting_console_write
Will replace qemu_semihosting_console_{outs,outc}, but we need more plumbing first. Reviewed-by: Luc Michel <lmichel@kalray.eu> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
fb08790b35
commit
cd66f20f61
@ -54,6 +54,18 @@ void qemu_semihosting_console_outc(CPUArchState *env, target_ulong c);
|
||||
*/
|
||||
int qemu_semihosting_console_read(CPUState *cs, void *buf, int len);
|
||||
|
||||
/**
|
||||
* qemu_semihosting_console_write:
|
||||
* @buf: host buffer
|
||||
* @len: buffer size
|
||||
*
|
||||
* Write len bytes from buf to the debug console.
|
||||
*
|
||||
* Returns: number of bytes written -- this should only ever be short
|
||||
* on some sort of i/o error.
|
||||
*/
|
||||
int qemu_semihosting_console_write(void *buf, int len);
|
||||
|
||||
/**
|
||||
* qemu_semihosting_log_out:
|
||||
* @s: pointer to string
|
||||
|
@ -76,3 +76,8 @@ int qemu_semihosting_console_read(CPUState *cs, void *buf, int len)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int qemu_semihosting_console_write(void *buf, int len)
|
||||
{
|
||||
return fwrite(buf, 1, len, stderr);
|
||||
}
|
||||
|
@ -169,6 +169,15 @@ int qemu_semihosting_console_read(CPUState *cs, void *buf, int len)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int qemu_semihosting_console_write(void *buf, int len)
|
||||
{
|
||||
if (console.chr) {
|
||||
return qemu_chr_write_all(console.chr, (uint8_t *)buf, len);
|
||||
} else {
|
||||
return fwrite(buf, 1, len, stderr);
|
||||
}
|
||||
}
|
||||
|
||||
void qemu_semihosting_console_init(Chardev *chr)
|
||||
{
|
||||
console.chr = chr;
|
||||
|
Loading…
Reference in New Issue
Block a user