[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 45/60] semihosting: Create qemu_semihosting_console_write
From: |
Richard Henderson |
Subject: |
[PULL 45/60] semihosting: Create qemu_semihosting_console_write |
Date: |
Tue, 28 Jun 2022 10:23:48 +0530 |
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>
---
include/semihosting/console.h | 12 ++++++++++++
linux-user/semihost.c | 5 +++++
semihosting/console.c | 9 +++++++++
3 files changed, 26 insertions(+)
diff --git a/include/semihosting/console.h b/include/semihosting/console.h
index 39dbf1b062..6994f23c82 100644
--- a/include/semihosting/console.h
+++ b/include/semihosting/console.h
@@ -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
diff --git a/linux-user/semihost.c b/linux-user/semihost.c
index 2029fb674c..871edf993a 100644
--- a/linux-user/semihost.c
+++ b/linux-user/semihost.c
@@ -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);
+}
diff --git a/semihosting/console.c b/semihosting/console.c
index 1d16a290c4..540aa0cd4b 100644
--- a/semihosting/console.c
+++ b/semihosting/console.c
@@ -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;
--
2.34.1
- [PULL 35/60] semihosting: Split out semihost_sys_remove, (continued)
- [PULL 35/60] semihosting: Split out semihost_sys_remove, Richard Henderson, 2022/06/28
- [PULL 34/60] semihosting: Split out semihost_sys_flen, Richard Henderson, 2022/06/28
- [PULL 36/60] semihosting: Split out semihost_sys_rename, Richard Henderson, 2022/06/28
- [PULL 37/60] semihosting: Split out semihost_sys_system, Richard Henderson, 2022/06/28
- [PULL 38/60] semihosting: Create semihost_sys_{stat,fstat}, Richard Henderson, 2022/06/28
- [PULL 39/60] semihosting: Create semihost_sys_gettimeofday, Richard Henderson, 2022/06/28
- [PULL 40/60] gdbstub: Adjust gdb_syscall_complete_cb declaration, Richard Henderson, 2022/06/28
- [PULL 41/60] semihosting: Fix docs comment for qemu_semihosting_console_inc, Richard Henderson, 2022/06/28
- [PULL 42/60] semihosting: Pass CPUState to qemu_semihosting_console_inc, Richard Henderson, 2022/06/28
- [PULL 44/60] semihosting: Cleanup chardev init, Richard Henderson, 2022/06/28
- [PULL 45/60] semihosting: Create qemu_semihosting_console_write,
Richard Henderson <=
- [PULL 46/60] semihosting: Add GuestFDConsole, Richard Henderson, 2022/06/28
- [PULL 52/60] semihosting: Remove qemu_semihosting_console_outs, Richard Henderson, 2022/06/28
- [PULL 53/60] semihosting: Create semihost_sys_poll_one, Richard Henderson, 2022/06/28
- [PULL 48/60] semihosting: Use console_in_gf for SYS_READC, Richard Henderson, 2022/06/28
- [PULL 47/60] semihosting: Create qemu_semihosting_guestfd_init, Richard Henderson, 2022/06/28
- [PULL 49/60] semihosting: Use console_out_gf for SYS_WRITEC, Richard Henderson, 2022/06/28
- [PULL 50/60] semihosting: Remove qemu_semihosting_console_outc, Richard Henderson, 2022/06/28
- [PULL 51/60] semihosting: Use console_out_gf for SYS_WRITE0, Richard Henderson, 2022/06/28
- [PULL 43/60] semihosting: Expand qemu_semihosting_console_inc to read, Richard Henderson, 2022/06/28
- [PULL 54/60] target/m68k: Eliminate m68k_semi_is_fseek, Richard Henderson, 2022/06/28