[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v4 42/53] semihosting: Pass CPUState to qemu_semihosting_cons
From: |
Luc Michel |
Subject: |
Re: [PATCH v4 42/53] semihosting: Pass CPUState to qemu_semihosting_console_inc |
Date: |
Fri, 24 Jun 2022 10:46:13 +0200 |
User-agent: |
Mutt/1.9.4 (2018-02-28) |
On 13:45 Tue 07 Jun , Richard Henderson wrote:
> We don't need CPUArchState, and we do want the CPUState of the
> thread performing the operation -- use this instead of current_cpu.
>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Luc Michel <lmichel@kalray.eu>
> ---
> include/semihosting/console.h | 4 ++--
> linux-user/semihost.c | 2 +-
> semihosting/arm-compat-semi.c | 2 +-
> semihosting/console.c | 12 ++++++------
> 4 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/include/semihosting/console.h b/include/semihosting/console.h
> index 4f6217bf10..27f8e9ae2e 100644
> --- a/include/semihosting/console.h
> +++ b/include/semihosting/console.h
> @@ -39,7 +39,7 @@ void qemu_semihosting_console_outc(CPUArchState *env,
> target_ulong c);
>
> /**
> * qemu_semihosting_console_inc:
> - * @env: CPUArchState
> + * @cs: CPUState
> *
> * Receive single character from debug console. As this call may block
> * if no data is available we suspend the CPU and will re-execute the
> @@ -50,7 +50,7 @@ void qemu_semihosting_console_outc(CPUArchState *env,
> target_ulong c);
> *
> * Returns: character read OR cpu_loop_exit!
> */
> -target_ulong qemu_semihosting_console_inc(CPUArchState *env);
> +target_ulong qemu_semihosting_console_inc(CPUState *cs);
>
> /**
> * qemu_semihosting_log_out:
> diff --git a/linux-user/semihost.c b/linux-user/semihost.c
> index 17f074ac56..f14c6ae21d 100644
> --- a/linux-user/semihost.c
> +++ b/linux-user/semihost.c
> @@ -56,7 +56,7 @@ void qemu_semihosting_console_outc(CPUArchState *env,
> target_ulong addr)
> * program is expecting more normal behaviour. This is slow but
> * nothing using semihosting console reading is expecting to be fast.
> */
> -target_ulong qemu_semihosting_console_inc(CPUArchState *env)
> +target_ulong qemu_semihosting_console_inc(CPUState *cs)
> {
> uint8_t c;
> struct termios old_tio, new_tio;
> diff --git a/semihosting/arm-compat-semi.c b/semihosting/arm-compat-semi.c
> index f992b60b6b..e7de52d042 100644
> --- a/semihosting/arm-compat-semi.c
> +++ b/semihosting/arm-compat-semi.c
> @@ -427,7 +427,7 @@ void do_common_semihosting(CPUState *cs)
> break;
>
> case TARGET_SYS_READC:
> - ret = qemu_semihosting_console_inc(env);
> + ret = qemu_semihosting_console_inc(cs);
> common_semi_set_ret(cs, ret);
> break;
>
> diff --git a/semihosting/console.c b/semihosting/console.c
> index 3dd0ac60e2..7b896fe43b 100644
> --- a/semihosting/console.c
> +++ b/semihosting/console.c
> @@ -144,17 +144,17 @@ static void console_read(void *opaque, const uint8_t
> *buf, int size)
> c->sleeping_cpus = NULL;
> }
>
> -target_ulong qemu_semihosting_console_inc(CPUArchState *env)
> +target_ulong qemu_semihosting_console_inc(CPUState *cs)
> {
> uint8_t ch;
> SemihostingConsole *c = &console;
> +
> g_assert(qemu_mutex_iothread_locked());
> - g_assert(current_cpu);
> if (fifo8_is_empty(&c->fifo)) {
> - c->sleeping_cpus = g_slist_prepend(c->sleeping_cpus, current_cpu);
> - current_cpu->halted = 1;
> - current_cpu->exception_index = EXCP_HALTED;
> - cpu_loop_exit(current_cpu);
> + c->sleeping_cpus = g_slist_prepend(c->sleeping_cpus, cs);
> + cs->halted = 1;
> + cs->exception_index = EXCP_HALTED;
> + cpu_loop_exit(cs);
> /* never returns */
> }
> ch = fifo8_pop(&c->fifo);
> --
> 2.34.1
>
>
>
>
> To declare a filtering error, please use the following link :
> https://www.security-mail.net/reporter.php?mid=77cd.629fd666.e5059.0&r=lmichel%40kalrayinc.com&s=qemu-devel-bounces%2Blmichel%3Dkalrayinc.com%40nongnu.org&o=%5BPATCH+v4+42%2F53%5D+semihosting%3A+Pass+CPUState+to+qemu_semihosting_console_inc&verdict=C&c=f31b95a8de28ae0d1f01d90dfc034138189ae5d1
>
--
- Re: [PATCH v4 34/53] semihosting: Split out semihost_sys_flen, (continued)
- [PATCH v4 36/53] semihosting: Split out semihost_sys_rename, Richard Henderson, 2022/06/07
- [PATCH v4 39/53] semihosting: Create semihost_sys_gettimeofday, Richard Henderson, 2022/06/07
- [PATCH v4 41/53] semihosting: Fix docs comment for qemu_semihosting_console_inc, Richard Henderson, 2022/06/07
- [PATCH v4 45/53] semihosting: Create qemu_semihosting_console_write, Richard Henderson, 2022/06/07
- [PATCH v4 42/53] semihosting: Pass CPUState to qemu_semihosting_console_inc, Richard Henderson, 2022/06/07
- Re: [PATCH v4 42/53] semihosting: Pass CPUState to qemu_semihosting_console_inc,
Luc Michel <=
- [PATCH v4 48/53] semihosting: Use console_in_gf for SYS_READC, Richard Henderson, 2022/06/07
- [PATCH v4 47/53] semihosting: Create qemu_semihosting_guestfd_init, Richard Henderson, 2022/06/07
- [PATCH v4 40/53] gdbstub: Adjust gdb_syscall_complete_cb declaration, Richard Henderson, 2022/06/07