[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 42/60] semihosting: Pass CPUState to qemu_semihosting_console_inc
From: |
Richard Henderson |
Subject: |
[PULL 42/60] semihosting: Pass CPUState to qemu_semihosting_console_inc |
Date: |
Tue, 28 Jun 2022 10:23:45 +0530 |
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: Luc Michel <lmichel@kalray.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
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 1b0505987a..40f3730778 100644
--- a/semihosting/arm-compat-semi.c
+++ b/semihosting/arm-compat-semi.c
@@ -428,7 +428,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 4e49202b2a..17ece6bdca 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
- [PULL 31/60] semihosting: Bound length for semihost_sys_{read,write}, (continued)
- [PULL 31/60] semihosting: Bound length for semihost_sys_{read,write}, Richard Henderson, 2022/06/28
- [PULL 27/60] semihosting: Split out semihost_sys_open, Richard Henderson, 2022/06/28
- [PULL 35/60] semihosting: Split out semihost_sys_remove, Richard Henderson, 2022/06/28
- [PULL 34/60] semihosting: Split out semihost_sys_flen, Richard Henderson, 2022/06/28
- [PULL 36/60] semihosting: Split out semihost_sys_rename, Richard Henderson, 2022/06/28
- [PULL 37/60] semihosting: Split out semihost_sys_system, Richard Henderson, 2022/06/28
- [PULL 38/60] semihosting: Create semihost_sys_{stat,fstat}, Richard Henderson, 2022/06/28
- [PULL 39/60] semihosting: Create semihost_sys_gettimeofday, Richard Henderson, 2022/06/28
- [PULL 40/60] gdbstub: Adjust gdb_syscall_complete_cb declaration, Richard Henderson, 2022/06/28
- [PULL 41/60] semihosting: Fix docs comment for qemu_semihosting_console_inc, Richard Henderson, 2022/06/28
- [PULL 42/60] semihosting: Pass CPUState to qemu_semihosting_console_inc,
Richard Henderson <=
- [PULL 44/60] semihosting: Cleanup chardev init, Richard Henderson, 2022/06/28
- [PULL 45/60] semihosting: Create qemu_semihosting_console_write, Richard Henderson, 2022/06/28
- [PULL 46/60] semihosting: Add GuestFDConsole, Richard Henderson, 2022/06/28
- [PULL 52/60] semihosting: Remove qemu_semihosting_console_outs, Richard Henderson, 2022/06/28
- [PULL 53/60] semihosting: Create semihost_sys_poll_one, Richard Henderson, 2022/06/28
- [PULL 48/60] semihosting: Use console_in_gf for SYS_READC, Richard Henderson, 2022/06/28
- [PULL 47/60] semihosting: Create qemu_semihosting_guestfd_init, Richard Henderson, 2022/06/28
- [PULL 49/60] semihosting: Use console_out_gf for SYS_WRITEC, Richard Henderson, 2022/06/28
- [PULL 50/60] semihosting: Remove qemu_semihosting_console_outc, Richard Henderson, 2022/06/28
- [PULL 51/60] semihosting: Use console_out_gf for SYS_WRITE0, Richard Henderson, 2022/06/28