qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-arm] [Qemu-devel] [RFC PATCH 10/11] target/mips: convert UHI_p


From: Aleksandar Markovic
Subject: Re: [Qemu-arm] [Qemu-devel] [RFC PATCH 10/11] target/mips: convert UHI_plog to use common semihosting code
Date: Mon, 20 May 2019 17:53:20 +0200


On May 14, 2019 6:02 PM, "Alex Bennée" <address@hidden> wrote:
>
> 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>
> ---

Reviewed-by: Aleksandar Markovic <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
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]