From 8b108f360733612a9fd02da95f7a4877fc315254 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 12 Jun 2019 11:17:45 -0400 Subject: [PATCH] cpu: Introduce env_archcpu This will replace foo_env_get_cpu with a generic definition. No changes to the target specific code so far. Backports commit 083dc73d7a3cf2a75b5625fd8f0669b57a855d16 from qemu --- qemu/include/exec/cpu-all.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/qemu/include/exec/cpu-all.h b/qemu/include/exec/cpu-all.h index 5f7e1d87..458f774a 100644 --- a/qemu/include/exec/cpu-all.h +++ b/qemu/include/exec/cpu-all.h @@ -375,6 +375,17 @@ int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr, int cpu_exec(struct uc_struct *uc, CPUState *cpu); +/** + * env_archcpu(env) + * @env: The architecture environment + * + * Return the ArchCPU associated with the environment. + */ +static inline ArchCPU *env_archcpu(CPUArchState *env) +{ + return container_of(env, ArchCPU, env); +} + /** * env_cpu(env) * @env: The architecture environment @@ -383,8 +394,7 @@ int cpu_exec(struct uc_struct *uc, CPUState *cpu); */ static inline CPUState *env_cpu(CPUArchState *env) { - ArchCPU *arch_cpu = container_of(env, ArchCPU, env); - return &arch_cpu->parent_obj; + return &env_archcpu(env)->parent_obj; } #endif /* CPU_ALL_H */