qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v4 52/53] semihosting: Remove qemu_semihosting_console_outs


From: Luc Michel
Subject: Re: [PATCH v4 52/53] semihosting: Remove qemu_semihosting_console_outs
Date: Mon, 27 Jun 2022 10:42:19 +0200
User-agent: Mutt/1.9.4 (2018-02-28)

On 13:45 Tue 07 Jun     , Richard Henderson wrote:
> This function has been replaced by *_write.
> 
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Reviewed-by: Luc Michel <lmichel@kalray.eu>

> ---
>  include/semihosting/console.h | 13 ----------
>  linux-user/semihost.c         | 17 ------------
>  semihosting/console.c         | 49 -----------------------------------
>  3 files changed, 79 deletions(-)
> 
> diff --git a/include/semihosting/console.h b/include/semihosting/console.h
> index d6c1cc58ab..20c31d89d4 100644
> --- a/include/semihosting/console.h
> +++ b/include/semihosting/console.h
> @@ -11,19 +11,6 @@
>  
>  #include "cpu.h"
>  
> -/**
> - * qemu_semihosting_console_outs:
> - * @env: CPUArchState
> - * @s: host address of null terminated guest string
> - *
> - * Send a null terminated guest string to the debug console. This may
> - * be the remote gdb session if a softmmu guest is currently being
> - * debugged.
> - *
> - * Returns: number of bytes written.
> - */
> -int qemu_semihosting_console_outs(CPUArchState *env, target_ulong s);
> -
>  /**
>   * qemu_semihosting_console_read:
>   * @cs: CPUState
> diff --git a/linux-user/semihost.c b/linux-user/semihost.c
> index f8bc8889f3..cee62a365c 100644
> --- a/linux-user/semihost.c
> +++ b/linux-user/semihost.c
> @@ -16,23 +16,6 @@
>  #include "user-internals.h"
>  #include <termios.h>
>  
> -int qemu_semihosting_console_outs(CPUArchState *env, target_ulong addr)
> -{
> -    int len = target_strlen(addr);
> -    void *s;
> -    if (len < 0){
> -       qemu_log_mask(LOG_GUEST_ERROR,
> -                     "%s: passed inaccessible address " TARGET_FMT_lx,
> -                     __func__, addr);
> -       return 0;
> -    }
> -    s = lock_user(VERIFY_READ, addr, (long)(len + 1), 1);
> -    g_assert(s);  /* target_strlen has already verified this will work */
> -    len = write(STDERR_FILENO, s, len);
> -    unlock_user(s, addr, 0);
> -    return len;
> -}
> -
>  /*
>   * For linux-user we can safely block. However as we want to return as
>   * soon as a character is read we need to tweak the termio to disable
> diff --git a/semihosting/console.c b/semihosting/console.c
> index f6fab5933a..c84ab97ab6 100644
> --- a/semihosting/console.c
> +++ b/semihosting/console.c
> @@ -47,55 +47,6 @@ int qemu_semihosting_log_out(const char *s, int len)
>      }
>  }
>  
> -/*
> - * A re-implementation of lock_user_string that we can use locally
> - * instead of relying on softmmu-semi. Hopefully we can deprecate that
> - * in time. Copy string until we find a 0 or address error.
> - */
> -static GString *copy_user_string(CPUArchState *env, target_ulong addr)
> -{
> -    CPUState *cpu = env_cpu(env);
> -    GString *s = g_string_sized_new(128);
> -    uint8_t c;
> -
> -    do {
> -        if (cpu_memory_rw_debug(cpu, addr++, &c, 1, 0) == 0) {
> -            if (c) {
> -                s = g_string_append_c(s, c);
> -            }
> -        } else {
> -            qemu_log_mask(LOG_GUEST_ERROR,
> -                          "%s: passed inaccessible address " TARGET_FMT_lx,
> -                          __func__, addr);
> -            break;
> -        }
> -    } while (c!=0);
> -
> -    return s;
> -}
> -
> -static void semihosting_cb(CPUState *cs, uint64_t ret, int err)
> -{
> -    if (err) {
> -        qemu_log("%s: gdb console output failed (%d)", __func__, err);
> -    }
> -}
> -
> -int qemu_semihosting_console_outs(CPUArchState *env, target_ulong addr)
> -{
> -    GString *s = copy_user_string(env, addr);
> -    int out = s->len;
> -
> -    if (use_gdb_syscalls()) {
> -        gdb_do_syscall(semihosting_cb, "write,2,%x,%x", addr, s->len);
> -    } else {
> -        out = qemu_semihosting_log_out(s->str, s->len);
> -    }
> -
> -    g_string_free(s, true);
> -    return out;
> -}
> -
>  #define FIFO_SIZE   1024
>  
>  static int console_can_read(void *opaque)
> -- 
> 2.34.1
> 
> 
> 
> 
> To declare a filtering error, please use the following link : 
> https://www.security-mail.net/reporter.php?mid=29a4.629fd909.2884b.0&r=lmichel%40kalrayinc.com&s=qemu-devel-bounces%2Blmichel%3Dkalrayinc.com%40nongnu.org&o=%5BPATCH+v4+52%2F53%5D+semihosting%3A+Remove+qemu_semihosting_console_outs&verdict=C&c=8ee0b8982c8025f3b6af275d795772fa0673b149
> 

-- 







reply via email to

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