[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-arm] [RFC PATCH 10/11] target/mips: convert UHI_plog to use common
From: |
Alex Bennée |
Subject: |
[Qemu-arm] [RFC PATCH 10/11] target/mips: convert UHI_plog to use common semihosting code |
Date: |
Tue, 14 May 2019 16:53:00 +0100 |
Rather than printing directly to stdout lets use our common
semihosting code. There is one minor difference in that the output
currently defaults to stderr instead of stdout however this can be
controlled by connecting semihosting to a chardev.
Signed-off-by: Alex Bennée <address@hidden>
---
target/mips/mips-semi.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/target/mips/mips-semi.c b/target/mips/mips-semi.c
index eac8374fb34..35bdfd7c77e 100644
--- a/target/mips/mips-semi.c
+++ b/target/mips/mips-semi.c
@@ -23,6 +23,7 @@
#include "exec/helper-proto.h"
#include "exec/softmmu-semi.h"
#include "hw/semihosting/semihost.h"
+#include "hw/semihosting/console.h"
typedef enum UHIOp {
UHI_exit = 1,
@@ -329,13 +330,12 @@ void helper_do_semihosting(CPUMIPSState *env)
p2 = strstr(p, "%d");
if (p2) {
int char_num = p2 - p;
- char *buf = g_malloc(char_num + 1);
- strncpy(buf, p, char_num);
- buf[char_num] = '\0';
- gpr[2] = printf("%s%d%s", buf, (int)gpr[5], p2 + 2);
- g_free(buf);
+ GString *s = g_string_new_len(p, char_num);
+ g_string_append_printf(s, "%d%s", (int)gpr[5], p2 + 2);
+ gpr[2] = qemu_semihosting_log_out(s->str, s->len);
+ g_string_free(s, true);
} else {
- gpr[2] = printf("%s", p);
+ gpr[2] = qemu_semihosting_log_out(p, strlen(p));
}
FREE_TARGET_STRING(p, gpr[4]);
break;
--
2.20.1
- [Qemu-arm] [RFC PATCH 00/11] semihosting cleanup and re-factor, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 02/11] semihosting: introduce CONFIG_SEMIHOSTING, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 03/11] semihosting: implement a semihosting console, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 04/11] semihosting: enable chardev backed output for console, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 07/11] target/arm: add LOG_UNIMP messages to arm-semi, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 09/11] target/mips: only build mips-semi for softmmu, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 10/11] target/mips: convert UHI_plog to use common semihosting code,
Alex Bennée <=
- [Qemu-arm] [RFC PATCH 01/11] semihosting: move semihosting configuration into its own directory, Alex Bennée, 2019/05/14
- [Qemu-arm] [RFC PATCH 06/11] target/arm: use the common interface for WRITE0/WRITEC in arm-semi, Alex Bennée, 2019/05/14