[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v10 14/73] cpu: define cpu_halted helpers
From: |
Robert Foley |
Subject: |
[PATCH v10 14/73] cpu: define cpu_halted helpers |
Date: |
Wed, 17 Jun 2020 17:01:32 -0400 |
From: "Emilio G. Cota" <cota@braap.org>
cpu->halted will soon be protected by cpu->lock.
We will use these helpers to ease the transition,
since right now cpu->halted has many direct callers.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Robert Foley <robert.foley@linaro.org>
---
include/hw/core/cpu.h | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h
index 9d25fc25a2..92069ebc59 100644
--- a/include/hw/core/cpu.h
+++ b/include/hw/core/cpu.h
@@ -498,6 +498,30 @@ void cpu_mutex_destroy(CPUState *cpu);
*/
bool no_cpu_mutex_locked(void);
+static inline uint32_t cpu_halted(CPUState *cpu)
+{
+ uint32_t ret;
+
+ if (cpu_mutex_locked(cpu)) {
+ return cpu->halted;
+ }
+ cpu_mutex_lock(cpu);
+ ret = cpu->halted;
+ cpu_mutex_unlock(cpu);
+ return ret;
+}
+
+static inline void cpu_halted_set(CPUState *cpu, uint32_t val)
+{
+ if (cpu_mutex_locked(cpu)) {
+ cpu->halted = val;
+ return;
+ }
+ cpu_mutex_lock(cpu);
+ cpu->halted = val;
+ cpu_mutex_unlock(cpu);
+}
+
static inline void cpu_tb_jmp_cache_clear(CPUState *cpu)
{
unsigned int i;
--
2.17.1
- [PATCH v10 03/73] cpu: make qemu_work_cond per-cpu, (continued)
- [PATCH v10 03/73] cpu: make qemu_work_cond per-cpu, Robert Foley, 2020/06/17
- [PATCH v10 02/73] cpu: introduce cpu_mutex_lock/unlock, Robert Foley, 2020/06/17
- [PATCH v10 04/73] cpu: move run_on_cpu to cpus-common, Robert Foley, 2020/06/17
- [PATCH v10 06/73] cpu: make per-CPU locks an alias of the BQL in TCG rr mode, Robert Foley, 2020/06/17
- [PATCH v10 05/73] cpu: introduce process_queued_cpu_work_locked, Robert Foley, 2020/06/17
- [PATCH v10 10/73] hppa: convert to helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 11/73] m68k: convert to helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 07/73] tcg-runtime: define helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 09/73] cris: convert to helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 08/73] ppc: convert to helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 14/73] cpu: define cpu_halted helpers,
Robert Foley <=
- [PATCH v10 12/73] alpha: convert to helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 15/73] tcg-runtime: convert to cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 13/73] microblaze: convert to helper_cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 17/73] arm: convert to cpu_halted, Robert Foley, 2020/06/17
- [PATCH v10 16/73] hw/semihosting: convert to cpu_halted_set, Robert Foley, 2020/06/17
- [PATCH v10 18/73] ppc: convert to cpu_halted, Robert Foley, 2020/06/17
- [PATCH v10 19/73] sh4: convert to cpu_halted, Robert Foley, 2020/06/17
- [PATCH v10 21/73] lm32: convert to cpu_halted, Robert Foley, 2020/06/17
- [PATCH v10 20/73] i386: convert to cpu_halted, Robert Foley, 2020/06/17
- [PATCH v10 26/73] sparc: convert to cpu_halted, Robert Foley, 2020/06/17