All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luc Michel <lmichel@kalray.eu>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: qemu-devel@nongnu.org
Subject: Re: [PATCH v4 52/53] semihosting: Remove qemu_semihosting_console_outs
Date: Mon, 27 Jun 2022 10:42:19 +0200	[thread overview]
Message-ID: <20220627084219.GH1789@ws2101.lin.mbt.kalray.eu> (raw)
In-Reply-To: <20220607204557.658541-53-richard.henderson@linaro.org>

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	other threads:[~2022-06-27  8:48 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-07 20:45 [PATCH v4 00/53] semihosting cleanup Richard Henderson
2022-06-07 20:45 ` [PATCH v4 01/53] semihosting: Move exec/softmmu-semi.h to semihosting/softmmu-uaccess.h Richard Henderson
2022-06-07 20:45 ` [PATCH v4 02/53] semihosting: Return failure from softmmu-uaccess.h functions Richard Henderson
2022-06-07 20:45 ` [PATCH v4 03/53] semihosting: Improve condition for config.c and console.c Richard Henderson
2022-06-07 20:45 ` [PATCH v4 04/53] semihosting: Move softmmu-uaccess.h functions out of line Richard Henderson
2022-06-07 20:45 ` [PATCH v4 05/53] accel/stubs: Add tcg stub for probe_access_flags Richard Henderson
2022-06-22  7:14   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 06/53] semihosting: Add target_strlen for softmmu-uaccess.h Richard Henderson
2022-06-07 20:45 ` [PATCH v4 07/53] semihosting: Simplify softmmu_lock_user_string Richard Henderson
2022-06-08 16:10   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 08/53] semihosting: Split out guestfd.c Richard Henderson
2022-06-09  7:24   ` Alex Bennée
2022-06-09 13:51     ` Richard Henderson
2022-06-07 20:45 ` [PATCH v4 09/53] semihosting: Inline set_swi_errno into common_semi_cb Richard Henderson
2022-06-07 20:45 ` [PATCH v4 10/53] semihosting: Adjust error checking in common_semi_cb Richard Henderson
2022-06-08 17:19   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 11/53] semihosting: Clean up common_semi_flen_cb Richard Henderson
2022-06-07 20:45 ` [PATCH v4 12/53] semihosting: Clean up common_semi_open_cb Richard Henderson
2022-06-07 20:45 ` [PATCH v4 13/53] semihosting: Return void from do_common_semihosting Richard Henderson
2022-06-09 15:42   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 14/53] semihosting: Move common-semi.h to include/semihosting/ Richard Henderson
2022-06-09 15:42   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 15/53] semihosting: Remove GDB_O_BINARY Richard Henderson
2022-06-09 15:49   ` Alex Bennée
2022-06-09 15:59     ` Richard Henderson
2022-06-07 20:45 ` [PATCH v4 16/53] include/exec: Move gdb open flags to gdbstub.h Richard Henderson
2022-06-07 20:45 ` [PATCH v4 17/53] include/exec: Move gdb_stat and gdb_timeval " Richard Henderson
2022-06-07 20:45 ` [PATCH v4 18/53] include/exec: Define errno values in gdbstub.h Richard Henderson
2022-06-09 15:50   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 19/53] gdbstub: Convert GDB error numbers to host error numbers Richard Henderson
2022-06-22  7:53   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 20/53] semihosting: Use struct gdb_stat in common_semi_flen_cb Richard Henderson
2022-06-07 20:45 ` [PATCH v4 21/53] semihosting: Split is_64bit_semihosting per target Richard Henderson
2022-06-07 20:45 ` [PATCH v4 22/53] semihosting: Split common_semi_flen_buf " Richard Henderson
2022-06-07 20:45 ` [PATCH v4 23/53] semihosting: Split out common_semi_has_synccache Richard Henderson
2022-06-07 20:45 ` [PATCH v4 24/53] semihosting: Split out common-semi-target.h Richard Henderson
2022-06-27  8:48   ` Alex Bennée
2022-06-27  9:03   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 25/53] semihosting: Use env more often in do_common_semihosting Richard Henderson
2022-06-22  8:22   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 26/53] semihosting: Move GET_ARG/SET_ARG earlier in the file Richard Henderson
2022-06-27  8:51   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 27/53] semihosting: Split out semihost_sys_open Richard Henderson
2022-06-22  9:35   ` Luc Michel
2022-06-22 15:05     ` Richard Henderson
2022-06-27  9:22       ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 28/53] semihosting: Split out semihost_sys_close Richard Henderson
2022-06-22 19:07   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 29/53] semihosting: Split out semihost_sys_read Richard Henderson
2022-06-22 19:25   ` Luc Michel
2022-06-23 14:11     ` Richard Henderson
2022-06-07 20:45 ` [PATCH v4 30/53] semihosting: Split out semihost_sys_write Richard Henderson
2022-06-22 19:28   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 31/53] semihosting: Bound length for semihost_sys_{read, write} Richard Henderson
2022-06-22 19:30   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 32/53] semihosting: Split out semihost_sys_lseek Richard Henderson
2022-06-22 19:40   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 33/53] semihosting: Split out semihost_sys_isatty Richard Henderson
2022-06-22 19:48   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 34/53] semihosting: Split out semihost_sys_flen Richard Henderson
2022-06-24  7:15   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 35/53] semihosting: Split out semihost_sys_remove Richard Henderson
2022-06-24  7:35   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 36/53] semihosting: Split out semihost_sys_rename Richard Henderson
2022-06-24  7:40   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 37/53] semihosting: Split out semihost_sys_system Richard Henderson
2022-06-24  7:51   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 38/53] semihosting: Create semihost_sys_{stat,fstat} Richard Henderson
2022-06-24  8:20   ` Luc Michel
2022-06-24  8:26   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 39/53] semihosting: Create semihost_sys_gettimeofday Richard Henderson
2022-06-24  8:26   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 40/53] gdbstub: Adjust gdb_syscall_complete_cb declaration Richard Henderson
2022-06-24  8:37   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 41/53] semihosting: Fix docs comment for qemu_semihosting_console_inc Richard Henderson
2022-06-24  8:42   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 42/53] semihosting: Pass CPUState to qemu_semihosting_console_inc Richard Henderson
2022-06-24  8:46   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 43/53] semihosting: Expand qemu_semihosting_console_inc to read Richard Henderson
2022-06-24  9:03   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 44/53] semihosting: Cleanup chardev init Richard Henderson
2022-06-24  9:07   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 45/53] semihosting: Create qemu_semihosting_console_write Richard Henderson
2022-06-27  7:23   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 46/53] semihosting: Add GuestFDConsole Richard Henderson
2022-06-27  8:36   ` Luc Michel
2022-06-27  8:56   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 47/53] semihosting: Create qemu_semihosting_guestfd_init Richard Henderson
2022-06-27  8:36   ` Luc Michel
2022-06-27  9:01   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 48/53] semihosting: Use console_in_gf for SYS_READC Richard Henderson
2022-06-27  8:41   ` Luc Michel
2022-06-27  9:07   ` Alex Bennée
2022-06-27 23:09     ` Richard Henderson
2022-06-28  9:35       ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 49/53] semihosting: Use console_out_gf for SYS_WRITEC Richard Henderson
2022-06-27  8:41   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 50/53] semihosting: Remove qemu_semihosting_console_outc Richard Henderson
2022-06-27  8:42   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 51/53] semihosting: Use console_out_gf for SYS_WRITE0 Richard Henderson
2022-06-27  8:42   ` Luc Michel
2022-06-07 20:45 ` [PATCH v4 52/53] semihosting: Remove qemu_semihosting_console_outs Richard Henderson
2022-06-27  8:42   ` Luc Michel [this message]
2022-06-27  9:10   ` Alex Bennée
2022-06-07 20:45 ` [PATCH v4 53/53] semihosting: Create semihost_sys_poll_one Richard Henderson
2022-06-27  9:01   ` Luc Michel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220627084219.GH1789@ws2101.lin.mbt.kalray.eu \
    --to=lmichel@kalray.eu \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.