Message ID | 20181025144644.15464-14-cota@braap.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC,v4,01/71] cpu: convert queued work to a QSIMPLEQ | expand |
Emilio G. Cota <cota@braap.org> writes: > 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> > Signed-off-by: Emilio G. Cota <cota@braap.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> > --- > include/qom/cpu.h | 24 ++++++++++++++++++++++++ > 1 file changed, 24 insertions(+) > > diff --git a/include/qom/cpu.h b/include/qom/cpu.h > index 11cbf21f00..aeed63a705 100644 > --- a/include/qom/cpu.h > +++ b/include/qom/cpu.h > @@ -487,6 +487,30 @@ bool cpu_mutex_locked(const 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; -- Alex Bennée
diff --git a/include/qom/cpu.h b/include/qom/cpu.h index 11cbf21f00..aeed63a705 100644 --- a/include/qom/cpu.h +++ b/include/qom/cpu.h @@ -487,6 +487,30 @@ bool cpu_mutex_locked(const 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;